欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《Java 程序设计》— IO接口(I)

程序员文章站 2022-07-11 18:55:49
...

抽象类InputStream——抽象方法read()

抽象类OutputStream——抽象方法write()

 

节点流:用于对数据进行读写

      字节类型的节点流:

        文件:FileInputStream, FileOutputStream;

        内存(数组):ByteArrayInputStream, ByteArrayOutputStream;

        管道:PipedInputStream, PipedOutputStream;

      字符类型的字节流:

        文件:FileReader, FileWriter;

        内存(数组):CharArrayReader, CharArrayWriter;

        内存(字符串):StringReader, StringWriter;

        管道:PipedReader, PipedWriter;

处理流:用于对数据执行某种处理

        面向字节的处理流:BufferedInputStream, BufferedOutputStream, DataInputStream, DataOutputStream;

        面向字符的处理流:BufferedWriter, BufferedReader, InputStreamReader, InputStreamWriter;

InputStreamReader, InputStreamWriter用于将字节流按照指定的字符集转换到字符流:

例如:new InputStreamReader(System.in) - 将按照默认的字符集将键盘输入转换为字符流。

public class BufferedReader
extends Reader

        从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。

        类BufferedReader提供了readLine()方法,可以一次从流中读一行。

例如:

import java.io.*;
public class ConvertStream
{
	public static void main(String[] args) throws IOException
	{
		String s;
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		while((s=in.readLine())!=null)
		{
			System.out.println("Read:"+s);
		}
	}
}

 

标准流对象:

标准输入:System.in; 是InputStream类的对象;

      char ch = System.in.read();

      注意:1、System.in.read()可能会抛出IOException异常。

               2、当键盘缓冲区中没有未被读取的数据时,执行System.in.read()将导致线程转入阻塞(block)状态。

               3、执行System.in.read()方法将从键盘缓冲区读入一个字节的数据,返回32位整形量。System.in只能从键盘读取二进制的数据,而不能把这些比特信息转换为复杂数据类型量(int char float等)。

      说明:System.in是一个未经处理的InputStream。

               BufferedReader的readLine()用来读取一行文本。

               先把System.in包装成BufferedReader。在这之前还需用InputStreamReader把System.in转换成Reader。

      如:BufferedReader in = new BufferedReader(new InputStreamReader(System.in));//把标准输入通过InputStreamReader由二进制数据流变成字符数据流。

例如:

import java.io.*;
public class Echo
{
	public static void main(String[] args)
	{
		try
		{
			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
			System.out.print("Please enter an integer:");
			String s = in.readLine();
			int i = Integer.parseInt(s);
			System.out.println("You have entered an integer:"+i);			
		}
		catch(NumberFormatException e)
		{
			System.out.println("Number format error!");
		}
		catch(IOException e)
		{
			System.out.println(e.toString());
		}
	}
}

 

标准输出:System.out; System.out是一个预先处理过的,被包装成了PrintStream的对象。

标准错误:System.err; 同System.out。

 

相关标签: Java