[Recipe] Reading Input from Keyboard using DataInputStream Class (Java)

Problem: 

Need to read data from Keyboard in a machine independent way.

Solution Summary: 

DataInputStream is a FilterInputStream that read primitive data from an underlying input stream in a machine-independent way.

It provides convenience methods such as readInt(), readChar etc.

Below program will take the input from keyboard using DataInputStream with its inherited read method and print it to a file using FileOutputStream.

Solution: 

import java.io.*;

 

public class FileCopier {

  public static void main(String[] args) throws IOException {

    DataInputStream dis = new DataInputStream(System.in);

    FileOutputStream fout = new FileOutputStream("myFile.txt");

    System.out.println("Enter text (enter & to end):");

    char ch;

    while ((ch = (char) dis.read()) != '&')

      fout.write(ch);

    fout.close();

  }

}

 

Important Notes

  1. Input will be read byte by byte and ends reading when a '&' is encountered.

  2. FileOutputStream constructor takes the name of the file as an argument.

  3. System.in is of type PrintStream and represents the standard input device which is keyboard by default. 

  4. The readLine() method of the DataInputStream is deprecated as method does not properly convert bytes to characters. To use readLine() and other character convenience methods, a more popular approach is to use a BufferedReader with InputStreamReader.

Recipe Tags: 

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)