public static void main(String[] args) throws IOException {
//demoOne();//写
//demoTwo();//读
//demoTest();//文本文件的复制操作
}
/**
* 文本文件复制操作,注意:只能操作文本文件,其他文件复制后也不能使用(编码表原因)
*/
private static void demoTest() throws IOException {
BufferedReader br = new BufferedReader(new FileReader("D:\\a.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\a.txt"));
char[] c = new char[1024];
int len = 0;
while((len =br.read(c)) != -1){
bw.write(c, 0, len);
bw.flush();
}
bw.close();
br.close();
System.out.println("复制完成");
}
/**
* BufferedReader();字符输入缓冲流
* 构造参数:
* FileReader,默认读取编码格式GBK
* InputStreamReader,转换流,可以根据需要改变编码
*/
private static void demoTwo() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\a.txt"),"UTF-8"));
char[] c = new char[1024];
int len = 0;
//普通读取方法
//while((len = br.read(c)) != -1){
// System.out.println(new String(c, 0, len));
// }
//读取一行
//String readLine = br.readLine();//独有方法,读取一行文本信息,可以使用此方法每次读取一行进行读取文本,如果到达文件末尾则返回null
//System.out.println(readLine);
String data = "";
while((data = br.readLine()) != null){
System.out.println(data);//如果输出也是br.readLine()那么循环读取到的是第一行,输出读取到的是第二行
}
br.close();
}
/**
* BufferedWriter();字符输出缓冲流
* 构造参数:
* FileWriter,如果不需要转换编码,直接使用默认编码GBK即可
* OutputStreamWriter
*/
private static void demoOne() throws IOException{
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\a.txt"), "UTF-8"));
bw.write("你好!");
bw.flush();
bw.newLine();//换行写入,省去\r\n,BufferWriter独有方法,平台无关性,windows:\r\n,Linux:\n
bw.write("我好大家好");
bw.flush();//记得刷新
bw.close();
System.out.println("写入完成");
}
Java字符缓冲流BufferedWriter(输出).BufferedReader(输入)基本操作以及文本文件复制
最新推荐文章于 2024-08-18 23:52:24 发布