1 使用字符流复制文件,每次读取一个字符数组长度的数据。
package cn.jbit.io.sg;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
/**
* 使用字符流复制文件,每次读取一个字符数组长度的数据。
* @author Terry Zhong
*/
public class TestIO {
public static void main(String[] args) {
Reader fr = null;
Writer fw = null;
try {
// 1、创建字符输入流、输出流对象
fr = new FileReader("c:\\source.txt");
fw = new FileWriter("c:\\target.txt");
// 2、创建中转数组
char ch[] = new char[1024];
int length = 0;
// 3、通过循环实现文件复制
length = fr.read(ch);
while (length != -1) {
fw.write(ch, 0, length);
length = fr.read(ch);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// 4、关闭文件输入流、输出流
if (null != fr)
fr.close();
if (null != fw)
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2 使用字符流复制文件,每次读取一个字符数据
package cn.jbit.io.sg;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
/**
* 使用字符流复制文件,每次读取一个字符数据。
* @author TerryZhong
*/
public class TestIO2 {
public static void main(String[] args) {
Reader fr = null;
Writer fw = null;
try {
// 1、创建字符输入流、输出流对象
fr = new FileReader("c:\\source.txt");
fw = new FileWriter("c:\\target.txt");
// 2、创建中转变量
int n;
// 3、通过循环实现文件复制
n = fr.read();
while (n != -1) {
fw.write(n);
n = fr.read();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// 4、关闭文件输入流、输出流
if (null != fr)
fr.close();
if (null != fw)
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}