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(); } }
05-04 04:12