Java IO Stream

Posted morningdew

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java IO Stream相关的知识,希望对你有一定的参考价值。

ref: http://www.studytonight.com/java/java-io-stream.php

IO Stream

Java performs I/O through Streams. A stream is linked to physical layer by java I/O system to make input and 

output operation in java. In general, a stream means continuous flow of data. Streams are clean way to deal with input/output without having every part of your code understand the physical

 

Java encapsulated Stream under java.io package. Java defined two types if stream:

1. Byte Stream:   handle input/output of byte

2. Character Stream:  handle input/output of characters. Character stream use Unicode and therefore can be internationalized

 

Byte Stream Classes

Byte Stream is defined by using two abstract class at the top of hierarchy, they are InputStream and OutputStream

技术分享

 

 

## These two abstract classes have several concrete classes that handle various devices 

such as disk files, network connection etc.

 

Some important Byte stream classes:

stream class            description

---------------------------------------------------------------------------------------------------------------------------------------

BufferedInputStream        used for Buffered input Stream

BufferedOutputStream        used for Buffered output stream

DataInputStream          contains method for reading java standard datatype

DataOutputStream          an output stream that contain method for writting java standard data type

FileInputStream           input stream that reads from a file

FileOutputStream           output stream that write to a file

InputStream              Abstract class that describe stream input

OutputStream            Abstract class that describe stream output

PrintStream             output stream that contain print() and println() mehod

 

The above classes define several key methods. Two most important are:

read(): read byte of data

write(): write byte data

 

***************************************************************************

 

Character Stream Classes

character stream is also defined by using two abstract class at the top of hierarchy, that are Reader and writer 

技术分享

These two abstract classes have several  concrete classes that handle unicode character

 

stream class            description

---------------------------------------------------------------------------------------------------------------------------------------

BufferedReader            handles buffered input stream        

BufferedWriter             handles buffered output stream

InputStreamReader           input stream that translate byte to character

OutputStreamWriter          output stream that translate character to byte

FileReader                input stream reads from file 

FileWriter                 output stream that writes to file

Reader                         abstract class that define character stream input

Writer                 abstract class that define character stream output

PrintWriter                  output stream that contain print() and println() method

 

Reading Console Input

we use BufferedReader class obj to read inputs from keyboard

`` BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

 

Reading Characters

read() method is used with BufferedReader object to read characters. As this function returns integer type

we need to use typecasting to convert it to char type

`` int read() throws IOException

class CharRead
{
 public static void main( String args[])
 {
  BufferedReader br = new Bufferedreader(new InputstreamReader(System.in));
  char c = (char)br.read();       //Reading character  
 }
}


Reading Strings

readLine() function with BufferedReader class

`` String readLine() throw IOException

`` String line = br.readLine();

import java.io.*;
class MyInput
{
 public static void main(String[] args)
 {
  String text;
  InputStreamReader isr = new InputStreamReader(System.in);
  BufferedReader br = new BufferedReader(isr);
  text = br.readLine();          //Reading String  
  System.out.println(text);
 }
}

 

 

Program to read from a file using BufferedReader class

import java. Io *;
class ReadTest
{
 public static void main(String[] args)
 {
  try 
  {
   File fl = new File("d:/myfile.txt");
   BufferedReader br = new BufferedReader(new FileReader(fl)) ;
   String str;
   while ((str=br.readLine())!=null)
   {
    System.out.println(str);
   }
   br.close();
   fl.close();
  }
  catch (IOException  e)
  { e.printStackTrace(); }
 }

 

Program to write to a File using FileWriter class

import java. Io *;
class WriteTest
{
 public static void main(String[] args)
 {
  try 
  {
   File fl = new File("d:/myfile.txt");
   String str="Write this string to my file";
   FileWriter fw = new FileWriter(fl) ;
   fw.write(str);
   fw.close();
   fl.close();
  }
  catch (IOException  e)
  { e.printStackTrace(); }
 }
}

 

以上是关于Java IO Stream的主要内容,如果未能解决你的问题,请参考以下文章

java内存流:java.io.ByteArrayInputStreamjava.io.ByteArrayOutputStreamjava.io.CharArrayReaderjava.io(代码片段

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

Java中的文件和stream流的操作代码

Java8 Stream流

Java导出Excel,java.io.IOException: Stream is already closed

jsp报错java.io.IOException: Stream closed