Java 流

23 Apr 2019

Java 流

首先一张图:java io流

字节流和字符流是有关系的,字符流可以配合编码方式传递给字符流的构造方法,这也是可以理解的,一个字节配合编码才可以成为字符。例如下面的程序

package mio;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class FileStreamTest2 {

	public static void main(String[] args) throws IOException {
		File fp = new File("a.txt");
		/*
		 * Java中有字节流和字符流两大类,下面的字节流可以通过不同的编码方式封装成为字符流
		 * FileOutputStream 是字节流,因为OutputStream是字节类,同理带有InputStream
		 * OutputStreamWriter 是字符流,因为Writer是字符类,同理带有Reader的是字符流
		 * fop 是FileOutputStream实例,
		 * writer 是writer实例
		 * 所以writer在实例化的过程中,需要两个参量,一个是字节流对象,一个是编码方式,才是字符流对象
		 */
		FileOutputStream fop = new FileOutputStream(fp);
		OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");
		writer.append("中文");
		writer.append("\r\n");
		writer.append("english");
		writer.close();
		fop.close();
		
		FileInputStream fip = new FileInputStream(fp);
		InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
		StringBuffer sb = new StringBuffer();
		while(reader.ready()) {
			sb.append((char)reader.read());
		}
		System.out.println(sb.toString());
		reader.close();
		fip.close();
	}

}

Java File类

File类可以用于文件和目录的创建,文件查找和文件删除等等。