InputStreamReader实现文本文件的读取
package Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class RWByCharStream {
public static void main(String[] args) {
try {
File file=new File("test.txt");
// 字节流
FileInputStream fis=new FileInputStream(file);
//讲字节流转换为字符流
InputStreamReader isr=new InputStreamReader(fis,"GBK");
char [] input=new char[100];
int L=0;
while((L=isr.read(input))!=-1){
System.out.println(new String(input,0,L));//指定当前的偏移量和长度。这样读取到文件最后的时候,
//当前数组没有被填满,之前读取的就不会在被输出
}
isr.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用InputStreamReader和OutputStreamWriter实现文本文件拷贝
package Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
public class RWByCharStream {
public static void main(String[] args) {
try {
// File file=new File("test.txt");
// 字节流
FileInputStream fis=new FileInputStream("test.txt");
//讲字节流转换为字符流
InputStreamReader isr=new InputStreamReader(fis,"GBK");
FileOutputStream fos=new FileOutputStream("test_new.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos,"GBK");
char [] input=new char[100];
int L=0;
while((L=isr.read(input))!=-1){
// 设置偏移量和长度
osw.write(input,0,L);
}
isr.close();
fis.close();
osw.close();
fos.close();
System.out.println("done");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}