Skip to content
/ text-io Public

A library for creating interactive console applications in Java

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license-header.txt
Notifications You must be signed in to change notification settings

beryx/text-io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2266505 · Oct 18, 2020
Dec 15, 2017
Jul 1, 2018
Nov 9, 2016
Apr 17, 2020
Dec 15, 2017
Dec 17, 2017
Oct 18, 2020
Feb 20, 2017
Dec 3, 2019
Nov 9, 2016
Jan 9, 2017
Dec 15, 2017
Apr 17, 2020
Nov 9, 2016
Jan 8, 2017
Apr 17, 2020
Mar 2, 2017
Mar 2, 2017
Jan 8, 2017
Jan 8, 2017
Dec 15, 2017

Repository files navigation

PRs Welcome License Build Status

Text-IO

Text-IO is a library for creating Java console applications. It can be used in applications that need to read interactive input from the user.

Features

  • supports reading values with various data types.
  • allows masking the input when reading sensitive data.
  • allows selecting a value from a list.
  • allows to specify constraints on the input values (format patterns, value ranges, length constraints etc.).
  • provides different terminal implementations and offers a Service Provider Interface (SPI) for configuring additional text terminals.

By default, Text-IO tries to use text terminals backed by java.io.Console. If no console device is present (which may happen, for example, when running the application in your IDE), a Swing-based terminal is used instead.

Example

TextIO textIO = TextIoFactory.getTextIO();

String user = textIO.newStringInputReader()
        .withDefaultValue("admin")
        .read("Username");

String password = textIO.newStringInputReader()
        .withMinLength(6)
        .withInputMasking(true)
        .read("Password");

int age = textIO.newIntInputReader()
        .withMinVal(13)
        .read("Age");

Month month = textIO.newEnumInputReader(Month.class)
        .read("What month were you born in?");

TextTerminal terminal = textIO.getTextTerminal();
terminal.printf("\nUser %s is %d years old, was born in %s and has the password %s.\n",
        user, age, month, password);

Click on the image below to see the output of the above example in a Swing-based terminal.

You can also use a web-based terminal, which allows you to access your application via a browser, as shown in the image below.

Useful links

Text-IO is available in Maven Central and JCenter.