- Copy text file
–Read and write one character at a time
–Read and write one character array at a time
Without parameters:
package com.demo03;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 需求:
* 把项目路径下的FileWriterDemo.java中的内容复制到项目路径下的Copy.java中
*
* 文件复制也是有规律可循的,也就是说有套路。
*
* 数据源:
* FileWriterDemo.java -- 读数据 -- FileReader
* 目的地:
* Copy.java -- 写数据 -- FileWriter
*/
public class CopyFileDemo {
public static void main(String[] args) throws IOException {
//创建输入流对象
FileReader fr = new FileReader("c:\\zy.txt");
//创建输出流对象
FileWriter fw = new FileWriter("c:\\Copy.txt");
//读写数据
int ch;
while((ch=fr.read())!=-1) {
fw.write(ch);
}
//释放资源
fw.close();
fr.close();
}
}
With parameters:
package com.demo03;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 需求:
* 把项目路径下的FileWriterDemo.java中的内容复制到项目路径下的Copy.java中
*
* 数据源:
* FileWriterDemo.java -- 读数据 -- FileReader
* 目的地:
* Copy.java -- 写数据 -- FileWriter
*/
public class CopyFileDemo2 {
public static void main(String[] args) throws IOException {
//创建输入流对象
FileReader fr = new FileReader("FileWriterDemo.java");
//创建输出流对象
FileWriter fw = new FileWriter("d:\\Copy.java");
//读写数据
char[] chs = new char[1024];
int len;
while((len=fr.read(chs))!=-1) {
fw.write(chs, 0, len);
}
//释放资源
fw.close();
fr.close();
}
}
character buffer stream
In real applications, we use this method of buffering streams to do it.
- BufferedWriterBasic usage
- Basic usage of BufferedReader
- Character buffer stream copy text file
- special function
–BufferedWriter
void newLine()
–BufferedReader
String readLine()
- Character Buffered Stream Special Functions Copying Text Files
* BufferedWriter: writes text to the character output stream, buffering individual characters, thereby providing efficient writing of single characters, arrays, and strings.
* BufferedReader: Read text from the character input stream and buffer each character to achieve efficient reading of characters, arrays and lines.
package com.demo04;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
* BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
*/
public class BufferedStreamDemo {
public static void main(String[] args) throws IOException {
//创建输出缓冲流对象
BufferedWriter bw = new BufferedWriter(new FileWriter("c://zy1.txt"));
bw.write("hello");
bw.flush();
bw.close();
//创建输入缓冲流对象
BufferedReader br = new BufferedReader(new FileReader("c://zy.txt"));
//一次读写一个字符
int ch;
while((ch=br.read())!=-1){
System.out.print((char)ch);
}
//一次读写一个字符数组,多个字符的读取
char[] chs = new char[1024];
int len;
while((len=br.read(chs))!=-1) {
System.out.print(new String(chs,0,len));
}
//释放资源
br.close();
}
}
Use input and output buffer streams to copy files
package com.demo04;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 需求:
* 把项目路径下的FileWriterDemo.java中的内容复制到项目路径下的Copy.java中
*
* 数据源:
* FileWriterDemo.java -- 读数据 -- FileReader -- 高效的读数据 -- BufferedReader
* 目的地:
* Copy.java -- 写数据 -- FileWriter -- 高效的写数据 -- BufferedWriter
*/
public class CopyFileDemo {
public static void main(String[] args) throws IOException {
//创建输入缓冲流对象
BufferedReader br = new BufferedReader(new FileReader("c://zy.txt"));
//创建输出缓冲流对象
BufferedWriter bw = new BufferedWriter(new FileWriter("c://zhangyu.txt"));
//读写数据
int ch;
//一次读写一个字符
while((ch = br.read())!=-1) {
bw.write(ch);
}
/*
//一次读写一个字符数组
char[] chs = new char[1024];
int len;
while((len=br.read(chs))!=-1) {
bw.write(chs,0,len);
}*/
//释放资源
bw.close();
br.close();
}
}
* Special functions of buffered streams:
* BufferedWriter
* void newLine(): Write a newline character, which is determined by the system
* BufferedReader
* String readLine(): Read one line of data at a time, but do not read newlines
bw.newLine() has the same effect as bw.write("\r\n")
package com.demo05;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
/*
* 缓冲流的特殊功能:
* BufferedWriter
* void newLine():写一个换行符,这个换行符由系统决定
* BufferedReader
* String readLine():一次读取一行数据,但是不读取换行符
*/
public class BufferedStreamDemo {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new FileWriter("c://bw2.txt"));
for(int x=0; x<10; x++) {
bw.write("hello"+x);
//bw.write("\r\n");
bw.newLine();
bw.flush();
}
bw.close();
//BufferedReader br = new BufferedReader(new FileReader("br.txt"));
/*
String line = br.readLine();
System.out.println(line);
line = br.readLine();
System.out.println(line);
line = br.readLine();
System.out.println(line);
line = br.readLine();
System.out.println(line);
*/
//String line;
//1:br.readLine()
//2:line=br.readLine()
//3:line != null
/*while((line=br.readLine())!=null) {
System.out.println(line);
}
br.close();*/
}
}