Java Io 字符流

Java Io 字符流包含:

1. InputStreamReader  它是由byte流解析为char流,并且按照给定的编码解析。

2. OutputStreamWrite  它是char流到byte流的转换,并且按照给定的编码处理。

事例代码如下:

 

package com.dcz.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class ReaderWriterDemo {

	public static void main(String[] args) throws Exception {
		
		InputStream fileInputStream = new FileInputStream("D:\\reader.txt");
		// 编码为文本文件的自身的编码格式,否则乱码
		InputStreamReader isr = new InputStreamReader(fileInputStream, "gbk");
		
		File writeFile = new File("D:\\writer.txt");
		if(!writeFile.exists()){
			writeFile.createNewFile();
		}
		OutputStream fileOutputStream = new FileOutputStream(writeFile);
		OutputStreamWriter osw = new OutputStreamWriter(fileOutputStream, "gbk");
		
/*		int c;
		while((c = isr.read()) != -1){
			System.out.print((char)c);
		}*/
		
		char[] charer = new char[2 * 1024];
		int c;
		while((c = isr.read(charer, 0, charer.length)) != -1){
			osw.write(charer, 0, charer.length);
			fileOutputStream.flush();
		}
		osw.close();
		isr.close();
	}

}

 

3. FileReader

4. FileWriter

这两个流读取文本文件会更方便

 

	public static void main(String[] args) throws IOException {
		
		FileReader fr = new FileReader("D:\\reader.txt");
		
		File writeFile = new File("D:\\writer.txt");
		if(!writeFile.exists()){
			writeFile.createNewFile();
		}
		FileWriter fw = new FileWriter(writeFile);
		int c;
		char[] charer = new char[2 * 1024];
		while((c = fr.read(charer, 0, charer.length)) != -1){
			fw.write(charer, 0, charer.length);
			fw.flush();
		}
		fw.close();
		fr.close();
	}

 

5. BufferedReader

6. BufferedWriter

缓冲输入/输出流,该流可以一行一行读取,一行一样写入

package com.dcz.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;

public class BufferReaderWriterDemo {

	public static void main(String[] args) throws Exception {
		
		// 读取文件,可以一次读取一行文件
		File readerFile = new File("D:\\reader.txt");
		InputStream fis = new FileInputStream(readerFile);
		Reader reader = new InputStreamReader(fis);
		BufferedReader br = new BufferedReader(reader);
		
		// 写入文件,可以一次写入一行文件
		File writerFile = new File("D:\\writer.txt");
		if(!writerFile.exists()){
			writerFile.createNewFile();
		}
		OutputStream fos = new FileOutputStream(writerFile);
		Writer writer = new OutputStreamWriter(fos);
		BufferedWriter bw = new BufferedWriter(writer);
		
		String str = "";
		while((str = br.readLine()) != null){
			bw.write(str);
			bw.newLine();
			bw.flush();
		}
		bw.close();
		br.close();
		
	}

}



 

posted @ 2015-09-07 21:57  dcz1001  阅读(211)  评论(0编辑  收藏  举报