object Console extends DeprecatedConsole with AnsiColor
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
- Since
1.0
- Grouped
- Alphabetic
- By Inheritance
- Console
- AnsiColor
- DeprecatedConsole
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
Test two objects for inequality.
Test two objects for inequality.
- returns
true
if !(this == that), false otherwise.
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
Equivalent to
x.hashCode
except for boxed numeric types andnull
.Equivalent to
x.hashCode
except for boxed numeric types andnull
. For numerics, it returns a hash value which is consistent with value equality: if two value type instances compare as true, then ## will produce the same hash value for each of them. Fornull
returns a hashcode wherenull.hashCode
throws aNullPointerException
.- returns
a hash value consistent with ==
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
The expression
x == that
is equivalent toif (x eq null) that eq null else x.equals(that)
.The expression
x == that
is equivalent toif (x eq null) that eq null else x.equals(that)
.- returns
true
if the receiver object is equivalent to the argument;false
otherwise.
- Definition Classes
- AnyRef → Any
-
final
val
BLACK: String("\u001B[30m")
Foreground color for ANSI black
Foreground color for ANSI black
- Definition Classes
- AnsiColor
-
final
val
BLACK_B: String("\u001B[40m")
Background color for ANSI black
Background color for ANSI black
- Definition Classes
- AnsiColor
-
final
val
BLINK: String("\u001B[5m")
ANSI blink
ANSI blink
- Definition Classes
- AnsiColor
-
final
val
BLUE: String("\u001B[34m")
Foreground color for ANSI blue
Foreground color for ANSI blue
- Definition Classes
- AnsiColor
-
final
val
BLUE_B: String("\u001B[44m")
Background color for ANSI blue
Background color for ANSI blue
- Definition Classes
- AnsiColor
-
final
val
BOLD: String("\u001B[1m")
ANSI bold
ANSI bold
- Definition Classes
- AnsiColor
-
final
val
CYAN: String("\u001B[36m")
Foreground color for ANSI cyan
Foreground color for ANSI cyan
- Definition Classes
- AnsiColor
-
final
val
CYAN_B: String("\u001B[46m")
Background color for ANSI cyan
Background color for ANSI cyan
- Definition Classes
- AnsiColor
-
final
val
GREEN: String("\u001B[32m")
Foreground color for ANSI green
Foreground color for ANSI green
- Definition Classes
- AnsiColor
-
final
val
GREEN_B: String("\u001B[42m")
Background color for ANSI green
Background color for ANSI green
- Definition Classes
- AnsiColor
-
final
val
INVISIBLE: String("\u001B[8m")
ANSI invisible
ANSI invisible
- Definition Classes
- AnsiColor
-
final
val
MAGENTA: String("\u001B[35m")
Foreground color for ANSI magenta
Foreground color for ANSI magenta
- Definition Classes
- AnsiColor
-
final
val
MAGENTA_B: String("\u001B[45m")
Background color for ANSI magenta
Background color for ANSI magenta
- Definition Classes
- AnsiColor
-
final
val
RED: String("\u001B[31m")
Foreground color for ANSI red
Foreground color for ANSI red
- Definition Classes
- AnsiColor
-
final
val
RED_B: String("\u001B[41m")
Background color for ANSI red
Background color for ANSI red
- Definition Classes
- AnsiColor
-
final
val
RESET: String("\u001B[0m")
Reset ANSI styles
Reset ANSI styles
- Definition Classes
- AnsiColor
-
final
val
REVERSED: String("\u001B[7m")
ANSI reversed
ANSI reversed
- Definition Classes
- AnsiColor
-
final
val
UNDERLINED: String("\u001B[4m")
ANSI underlines
ANSI underlines
- Definition Classes
- AnsiColor
-
final
val
WHITE: String("\u001B[37m")
Foreground color for ANSI white
Foreground color for ANSI white
- Definition Classes
- AnsiColor
-
final
val
WHITE_B: String("\u001B[47m")
Background color for ANSI white
Background color for ANSI white
- Definition Classes
- AnsiColor
-
final
val
YELLOW: String("\u001B[33m")
Foreground color for ANSI yellow
Foreground color for ANSI yellow
- Definition Classes
- AnsiColor
-
final
val
YELLOW_B: String("\u001B[43m")
Background color for ANSI yellow
Background color for ANSI yellow
- Definition Classes
- AnsiColor
-
final
def
asInstanceOf[T0]: T0
Cast the receiver object to be of type
T0
.Cast the receiver object to be of type
T0
.Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression
1.asInstanceOf[String]
will throw aClassCastException
at runtime, while the expressionList(1).asInstanceOf[List[String]]
will not. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested type.- returns
the receiver object.
- Definition Classes
- Any
- Exceptions thrown
ClassCastException
if the receiver object is not an instance of the erasure of typeT0
.
-
def
clone(): AnyRef
Create a copy of the receiver object.
-
final
def
eq(arg0: AnyRef): Boolean
Tests whether the argument (
that
) is a reference to the receiver object (this
).Tests whether the argument (
that
) is a reference to the receiver object (this
).The
eq
method implements an equivalence relation on non-null instances ofAnyRef
, and has three additional properties:- It is consistent: for any non-null instances
x
andy
of typeAnyRef
, multiple invocations ofx.eq(y)
consistently returnstrue
or consistently returnsfalse
. - For any non-null instance
x
of typeAnyRef
,x.eq(null)
andnull.eq(x)
returnsfalse
. null.eq(null)
returnstrue
.
When overriding the
equals
orhashCode
methods, it is important to ensure that their behavior is consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2
), they should be equal to each other (o1 == o2
) and they should hash to the same value (o1.hashCode == o2.hashCode
).- returns
true
if the argument is a reference to the receiver object;false
otherwise.
- Definition Classes
- AnyRef
- It is consistent: for any non-null instances
-
def
equals(arg0: Any): Boolean
The equality method for reference types.
-
def
err: PrintStream
The default error, can be overridden by
withErr
-
def
finalize(): Unit
Called by the garbage collector on the receiver object when there are no more references to the object.
Called by the garbage collector on the receiver object when there are no more references to the object.
The details of when and if the
finalize
method is invoked, as well as the interaction betweenfinalize
and non-local returns and exceptions, are all platform dependent.- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- Note
not specified by SLS as a member of AnyRef
-
def
flush(): Unit
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.
-
final
def
getClass(): Class[_]
Returns the runtime class representation of the object.
-
def
hashCode(): Int
The hashCode method for reference types.
-
def
in: BufferedReader
The default input, can be overridden by
withIn
-
final
def
isInstanceOf[T0]: Boolean
Test whether the dynamic type of the receiver object is
T0
.Test whether the dynamic type of the receiver object is
T0
.Note that the result of the test is modulo Scala's erasure semantics. Therefore the expression
1.isInstanceOf[String]
will returnfalse
, while the expressionList(1).isInstanceOf[List[String]]
will returntrue
. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the specified type.- returns
true
if the receiver object is an instance of erasure of typeT0
;false
otherwise.
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
Equivalent to
!(this eq that)
.Equivalent to
!(this eq that)
.- returns
true
if the argument is not a reference to the receiver object;false
otherwise.
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
Wakes up a single thread that is waiting on the receiver object's monitor.
Wakes up a single thread that is waiting on the receiver object's monitor.
- Definition Classes
- AnyRef
- Annotations
- @native()
- Note
not specified by SLS as a member of AnyRef
-
final
def
notifyAll(): Unit
Wakes up all threads that are waiting on the receiver object's monitor.
Wakes up all threads that are waiting on the receiver object's monitor.
- Definition Classes
- AnyRef
- Annotations
- @native()
- Note
not specified by SLS as a member of AnyRef
-
def
out: PrintStream
The default output, can be overridden by
withOut
-
def
print(obj: Any): Unit
Prints an object to
out
using itstoString
method.Prints an object to
out
using itstoString
method.- obj
the object to print; may be null.
-
def
printf(text: String, args: Any*): Unit
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.
- text
the pattern for formatting the arguments.
- args
the arguments used to instantiating the pattern.
- Exceptions thrown
java.lang.IllegalArgumentException
if there was a problem with the format string or arguments
-
def
println(x: Any): Unit
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.
- x
the object to print.
-
def
println(): Unit
Prints a newline character on the default output.
-
def
setErrDirect(err: PrintStream): Unit
- Attributes
- protected
- Definition Classes
- Console → DeprecatedConsole
-
def
setInDirect(in: BufferedReader): Unit
- Attributes
- protected
- Definition Classes
- Console → DeprecatedConsole
-
def
setOutDirect(out: PrintStream): Unit
Internal usage only.
Internal usage only.
- Attributes
- protected
- Definition Classes
- Console → DeprecatedConsole
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
Creates a String representation of this object.
Creates a String representation of this object. The default representation is platform dependent. On the java platform it is the concatenation of the class name, "@", and the object's hashcode in hexadecimal.
- returns
a String representation of the object.
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
- final def wait(arg0: Long): Unit
-
def
withErr[T](err: OutputStream)(thunk: ⇒ T): T
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.
- 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)
-
def
withErr[T](err: PrintStream)(thunk: ⇒ T): T
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.
- err
the new error stream.
- thunk
the code to execute with the new error stream active
- returns
the results of
thunk
withErr(Console.out) { err.println("This goes to default _out_") }
- See also
withErr[T](err:OutputStream)(thunk: =>T)
Example: -
def
withIn[T](in: InputStream)(thunk: ⇒ T): T
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.
- 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)
-
def
withIn[T](reader: Reader)(thunk: ⇒ T): T
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.
- thunk
the code to execute with the new input stream active
- returns
the results of
thunk
val someFile:Reader = openFile("file.txt") withIn(someFile) { // Reads a line from file.txt instead of default input println(readLine) }
- See also
withIn[T](in:InputStream)(thunk: =>T)
Example: -
def
withOut[T](out: OutputStream)(thunk: ⇒ T): T
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.
- 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)
-
def
withOut[T](out: PrintStream)(thunk: ⇒ T): T
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.
- out
the new output stream.
- thunk
the code to execute with the new output stream active
- returns
the results of
thunk
withOut(Console.err) { println("This goes to default _error_") }
- See also
withOut[T](out:OutputStream)(thunk: => T)
Example:
Deprecated Value Members
-
def
readBoolean(): Boolean
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readByte(): Byte
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readChar(): Char
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readDouble(): Double
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readFloat(): Float
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readInt(): Int
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readLine(text: String, args: Any*): String
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readLine(): String
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readLong(): Long
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readShort(): Short
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readf(format: String): List[Any]
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readf1(format: String): Any
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readf2(format: String): (Any, Any)
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
readf3(format: String): (Any, Any, Any)
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use the method in scala.io.StdIn
-
def
setErr(err: OutputStream): Unit
Sets the default error stream.
Sets the default error stream.
- err
the new error stream.
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use withErr
-
def
setErr(err: PrintStream): Unit
Sets the default error stream.
Sets the default error stream.
- err
the new error stream.
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use withErr
-
def
setIn(in: InputStream): Unit
Sets the default input stream.
Sets the default input stream.
- in
the new input stream.
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use withIn
-
def
setIn(reader: Reader): Unit
Sets the default input stream.
Sets the default input stream.
- reader
specifies the new input stream.
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use withIn
-
def
setOut(out: OutputStream): Unit
Sets the default output stream.
Sets the default output stream.
- out
the new output stream.
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use withOut
-
def
setOut(out: PrintStream): Unit
Sets the default output stream.
Sets the default output stream.
- out
the new output stream.
- Definition Classes
- DeprecatedConsole
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use withOut
Console Output
These methods provide output via the console.
IO Defaults
These values provide direct access to the standard IO channels
IO Redefinition
These methods allow substituting alternative streams for the duration of a body of code. Threadsafe by virtue of scala.util.DynamicVariable.
This is the documentation for the Scala standard library.
Package structure
The scala package contains core types like
Int
,Float
,Array
orOption
which are accessible in all Scala compilation units without explicit qualification or imports.Notable packages include:
scala.collection
and its sub-packages contain Scala's collections frameworkscala.collection.immutable
- Immutable, sequential data-structures such asVector
,List
,Range
,HashMap
orHashSet
scala.collection.mutable
- Mutable, sequential data-structures such asArrayBuffer
,StringBuilder
,HashMap
orHashSet
scala.collection.concurrent
- Mutable, concurrent data-structures such asTrieMap
scala.collection.parallel.immutable
- Immutable, parallel data-structures such asParVector
,ParRange
,ParHashMap
orParHashSet
scala.collection.parallel.mutable
- Mutable, parallel data-structures such asParArray
,ParHashMap
,ParTrieMap
orParHashSet
scala.concurrent
- Primitives for concurrent programming such asFutures
andPromises
scala.io
- Input and output operationsscala.math
- Basic math functions and additional numeric types likeBigInt
andBigDecimal
scala.sys
- Interaction with other processes and the operating systemscala.util.matching
- Regular expressionsOther packages exist. See the complete list on the right.
Additional parts of the standard library are shipped as separate libraries. These include:
scala.reflect
- Scala's reflection API (scala-reflect.jar)scala.xml
- XML parsing, manipulation, and serialization (scala-xml.jar)scala.swing
- A convenient wrapper around Java's GUI framework called Swing (scala-swing.jar)scala.util.parsing
- Parser combinators (scala-parser-combinators.jar)Automatic imports
Identifiers in the scala package and the
scala.Predef
object are always in scope by default.Some of these identifiers are type aliases provided as shortcuts to commonly used classes. For example,
List
is an alias forscala.collection.immutable.List
.Other aliases refer to classes provided by the underlying platform. For example, on the JVM,
String
is an alias forjava.lang.String
.