您的位置:首页 > 编程语言 > Java开发

java-IO操作-使用字符流读写数据

2016-05-13 16:35 483 查看

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();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: