import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.nio.channels.FileChannel;
import java.nio.ByteBuffer;
public class Test{
public static void main(String[] args) throws Exception {
//创建2个文件
File file1 = new File("D://test1.txt");
File file2 = new File("d://test2.txt");
file1.createNewFile();
file2.createNewFile();
//从键盘输入的字符写入test1.txt
FileWriter fout = new FileWriter(file1);
String str=null;
System.out.println("Please input a String:");
BufferedReader fin = new BufferedReader(new InputStreamReader(System.in));
str = fin.readLine();
System.out.println(str);
fout.write(str,0,str.length());
fout.flush();
fout.close();
fin.close();
//复制文件test1.txt的内容到test2.txt
//为了让你明白通道所以我这里用了2种读写入文件的方法
new Exam2().copy("D://test1.txt", "d://test2.txt");
}
/**
* 复制文件封装类
* @param url1
* @param url2
* @throws Exception
*/
public void copy(String url1, String url2) throws Exception {
FileInputStream input = new FileInputStream(url1);
FileChannel filechannel = input.getChannel();
FileOutputStream output = new FileOutputStream(url2);
FileChannel filechannel2 = output.getChannel();
ByteBuffer buf = ByteBuffer.allocate(1024 *
;
while (filechannel.read(buf) != -1) {
buf.flip();
filechannel2.write(buf);
buf.clear();
}
input.close();
filechannel.close();
output.close();
filechannel2.close();
}
}