Console
Implements functionality for printing Scala values on the terminal. For reading values use StdIn. Also defines constants for marking up text on ANSI terminals.
Console Output
Use the print methods to output text.
scala> Console.printf(
"Today the outside temperature is a balmy %.1f°C. %<.1f°C beats the previous record of %.1f°C.\n",
-137.0,
-135.05)
Today the outside temperature is a balmy -137.0°C. -137.0°C beats the previous record of -135.1°C.
ANSI escape codes
Use the ANSI escape codes for colorizing console output either to STDOUT or STDERR.
import Console.{GREEN, RED, RESET, YELLOW_B, UNDERLINED}
object PrimeTest {
def isPrime(): Unit = {
val candidate = io.StdIn.readInt().ensuring(_ > 1)
val prime = (2 to candidate - 1).forall(candidate % _ != 0)
if (prime)
Console.println(s"${RESET}${GREEN}yes${RESET}")
else
Console.err.println(s"${RESET}${YELLOW_B}${RED}${UNDERLINED}NO!${RESET}")
}
def main(args: Array[String]): Unit = isPrime()
}
$ scala PrimeTest |
1234567891 |
yes |
$ scala PrimeTest |
56474 |
NO! |
IO redefinition
Use IO redefinition to temporarily swap in a different set of input and/or output streams. In this example the stream based method above is wrapped into a function.
import java.io.{ByteArrayOutputStream, StringReader}
object FunctionalPrimeTest {
def isPrime(candidate: Int): Boolean = {
val input = new StringReader(s"$candidate\n")
val outCapture = new ByteArrayOutputStream
val errCapture = new ByteArrayOutputStream
Console.withIn(input) {
Console.withOut(outCapture) {
Console.withErr(errCapture) {
PrimeTest.isPrime()
}
}
}
if (outCapture.toByteArray.nonEmpty) // "yes"
true
else if (errCapture.toByteArray.nonEmpty) // "NO!"
false
else throw new IllegalArgumentException(candidate.toString)
}
def main(args: Array[String]): Unit = {
val primes = (2 to 50) filter (isPrime)
println(s"First primes: $primes")
}
}
$ scala FunctionalPrimeTest First primes: Vector(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47)
- Source
- Console.scala
Console Output
These methods provide output via the console.
Flushes the output stream.
Flushes the output stream. This function is required when partial output (i.e. output not terminated by a newline character) has to be made visible on the terminal.
- Source
- Console.scala
Prints an object to out
using its toString
method.
Prints an object to out
using its toString
method.
- Value Params
- obj
the object to print; may be null.
- Source
- Console.scala
Prints its arguments as a formatted string to the default output, based on a string pattern (in a fashion similar to printf in C).
Prints its arguments as a formatted string to the default output, based on a string pattern (in a fashion similar to printf in C).
The interpretation of the formatting patterns is described in java.util.Formatter.
- Value Params
- args
the arguments used to instantiating the pattern.
- text
the pattern for formatting the arguments.
- Throws
- java.lang.IllegalArgumentException
if there was a problem with the format string or arguments
- Source
- Console.scala
Prints a newline character on the default output.
Prints a newline character on the default output.
- Source
- Console.scala
Prints out an object to the default output, followed by a newline character.
Prints out an object to the default output, followed by a newline character.
- Value Params
- x
the object to print.
- Source
- Console.scala
IO Defaults
These values provide direct access to the standard IO channels
The default error, can be overridden by withErr
The default error, can be overridden by withErr
- Source
- Console.scala
The default input, can be overridden by withIn
The default input, can be overridden by withIn
- Source
- Console.scala
The default output, can be overridden by withOut
The default output, can be overridden by withOut
- Source
- Console.scala
IO Redefinition
These methods allow substituting alternative streams for the duration of a body of code. Threadsafe by virtue of scala.util.DynamicVariable.
Set the default error stream for the duration of execution of one thunk.
Set the default error stream for the duration of execution of one thunk.
- Value Params
- err
the new error stream.
- thunk
the code to execute with the new error stream active
- Returns
the results of
thunk
- See also
withErr[T](err:OutputStream)(thunk: => T)
- Example
withErr(Console.out) { err.println("This goes to default _out_") }
- Source
- Console.scala
Sets the default error stream for the duration of execution of one thunk.
Sets the default error stream for the duration of execution of one thunk.
- Value Params
- err
the new error stream.
- thunk
the code to execute with the new error stream active
- Returns
the results of
thunk
- See also
withErr[T](err:PrintStream)(thunk: => T)
- Source
- Console.scala
Sets the default input stream for the duration of execution of one thunk.
Sets the default input stream for the duration of execution of one thunk.
- Value Params
- thunk
the code to execute with the new input stream active
- Returns
the results of
thunk
- See also
withIn[T](in:InputStream)(thunk: => T)
- Example
val someFile:Reader = openFile("file.txt") withIn(someFile) { // Reads a line from file.txt instead of default input println(readLine) }
- Source
- Console.scala
Sets the default input stream for the duration of execution of one thunk.
Sets the default input stream for the duration of execution of one thunk.
- Value Params
- in
the new input stream.
- thunk
the code to execute with the new input stream active
- Returns
the results of
thunk
- See also
withIn[T](reader:Reader)(thunk: => T)
- Source
- Console.scala
Sets the default output stream for the duration of execution of one thunk.
Sets the default output stream for the duration of execution of one thunk.
- Value Params
- out
the new output stream.
- thunk
the code to execute with the new output stream active
- Returns
the results of
thunk
- See also
withOut[T](out:OutputStream)(thunk: => T)
- Example
withOut(Console.err) { println("This goes to default _error_") }
- Source
- Console.scala
Sets the default output stream for the duration of execution of one thunk.
Sets the default output stream for the duration of execution of one thunk.
- Value Params
- out
the new output stream.
- thunk
the code to execute with the new output stream active
- Returns
the results of
thunk
- See also
withOut[T](out:PrintStream)(thunk: => T)
- Source
- Console.scala
color-magenta
Foreground color for ANSI magenta
Foreground color for ANSI magenta
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
Background color for ANSI magenta
Background color for ANSI magenta
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
color-blue
Foreground color for ANSI blue
Foreground color for ANSI blue
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
Background color for ANSI blue
Background color for ANSI blue
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
color-red
Foreground color for ANSI red
Foreground color for ANSI red
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
Background color for ANSI red
Background color for ANSI red
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
color-cyan
Foreground color for ANSI cyan
Foreground color for ANSI cyan
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
Background color for ANSI cyan
Background color for ANSI cyan
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
style-control
color-yellow
Foreground color for ANSI yellow
Foreground color for ANSI yellow
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
Background color for ANSI yellow
Background color for ANSI yellow
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
color-white
Foreground color for ANSI white
Foreground color for ANSI white
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
Background color for ANSI white
Background color for ANSI white
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
color-black
Foreground color for ANSI black
Foreground color for ANSI black
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
Background color for ANSI black
Background color for ANSI black
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
color-green
Foreground color for ANSI green
Foreground color for ANSI green
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala
Background color for ANSI green
Background color for ANSI green
- Inherited from
- AnsiColor
- Source
- AnsiColor.scala