## FileWirter方法及使用
>* 构造方法
FileWriter(String fileName) 传入一个文件的路径,要写入文件的名字
>* 成员方法
void write(String str) 写入一个字符串
void flush() 刷新缓冲区的
void close() 关闭资源
>* FileWriter写数据的5个方法(必须掌握)
void write(String str):写入一个字符串
void write(String str,int index,int len):把字符串的一部分写入文件
void write(int ch):写入单个字符,int可以写整数,也可以写char字符
void write(char[] chs):把字符数组写入到文件
void write(char[] chs,int index,int len):把字符数组的一部分写入文件
>* 如何实现尾部追加
构造方法: FileWriter(String fileName, boolean append)
在构造方法的后面加上true即可,
FileWriter(String fileName)
如果不写默认的是false表示的是不追加数据
## FileReader方法及使用
>* FileReader读数据一次读取一个字符
FileRead的构造方法
FileReader(String fileName) 读取文件
FileRead是通过哪个方法读取数据的? 文件的末尾结束标记为?
read()
-1
输入和输出的注意事项:
输出流操作文件:我们本地硬盘上没有文件会自动创建一个文件
输入流读取文件:本地硬盘上有才会去读,没有的话就报java.io.FileNotFoundException
>* FileReader读数据一次一个字符数组
案例代码
public static void main(String[] args) throws IOException {
//创建FileReader并关联文件
FileReader fr = new FileReader("FileWriterDemo2.java");
//创建FileWriter并关联文件
FileWriter fw = new FileWriter("charCopy.txt");
//创建字符数组
char[] chs = new char[1024];
//记录长度
int len;
while((len = fr.read(chs))!=-1){
fw.write(chs, 0, len);
// System.err.println(len);
}
fw.close();
fr.close();
}
## 缓冲流
>* 使用构造方法来创建(格式必须记住)
输入缓冲流
BufferedReader br = new BufferedReader(new FileReade("CopyText6.java"));
输出缓冲流
BufferedWriter bw = new BufferedWriter(new FileWriter("Text4.txt"));
//一次读取一个字符
int len;
while((len = br.read())!=-1){
System.out.print((char)len);
}
//一次读取一个字符数组
//定义一个字符数组
char[] chs = new char[1024];
//定义一个len变量
int len;
while((len=br.read(chs))!=-1){
System.out.print(new String(chs,0,len));
}
## 缓冲流的特殊功能
>* BufferedReader的特殊功能:
readLine()一次读取一行
>* BufferedWriter的特殊功能:
newLine() 换行 跨平台的
>* 最终代码演示
案例代码:(重点必须掌握)
public static void main(String[] args) throws IOException {
// 使用缓冲流的特殊功能复制文件
BufferedReader br = new BufferedReader(new FileReader("FileWriterDemo2.java"));
BufferedWriter bw = new BufferedWriter(new FileWriter("readLine.txt"));
// int len;
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
// bw.write("\r\n"); // 不能跨平台
bw.newLine(); //跨平台
}
// char[] chs = new char[1024];
// while((len = br.read(chs))!=-1){
// bw.write(chs, 0, len);
// }
bw.close();
br.close();
}
|
|