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

Java IO流->节点流->字符流:FileReader与FileWriter

2015-08-25 14:36 691 查看
示例代码:

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import org.junit.Test;

public class TestFileReaderWriter {
/**
* FileReader类
*/
@Test
public void test1() {
FileReader fr = null;
try {
File file = new File("hello.txt");
fr = new FileReader(file);
char[] c = new char[1];
int len;
while((len = fr.read(c)) != -1) {
String str = new String(c, 0, len);
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(fr != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/*
* 结果:
*  h
e
l
l
o

e
v
e
r
y
b
o
d
y
.
中
国

分析:char可以存放字节大小的字母,也可以存放字符大小的汉字。
*/

/**
* 使用字符流(FileReader、FileWriter)可以实现文本文件的复制。
* 对于使用非文本文件(视频文件、音频文件、图片、.doc文件(可存放图片,已被包装,不是单纯的文本文件)),只能使用字节流!
*/
/*
* FileReader与FileWriter
*/
@Test
public void test2() {
//输入流对应的文件一定要存在,否则会出错。
//输出流对应的文件可以不存在,执行过程中会自动创建。
FileReader fr = null;
FileWriter fw = null;
try {
File file1 = new File("hello.txt");//如果是处理图片或视频等文件会出问题
File file2 = new File("newfw.txt");
fr = new FileReader(file1);
fw = new FileWriter(file2);
char[] c = new char[2];
int len;
while((len = fr.read(c)) != -1) {
fw.write(c, 0, len);;
}
} catch(Exception e) {
e.printStackTrace();
} finally {
if(fw != null) {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fr != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: