-------------siwuxie095
工程名:TestFileRW
包名:com.siwuxie095.filerw
类名:FileReaderWriter.java
打开资源管理器,在工程 TestFileRW 文件夹下,放入
一个文本:java.txt
java.txt 的内容:
工程结构目录如下:
代码:
package com.siwuxie095.filerw;
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;
public class FileReaderWriter {
/** * 使用 FileReader 与 FileWriter 读写数据 * * 字节流和字符流 不仅可以读写文件数据,还可以操作网络数据、 * 获取系统的输入输出 * * 而 FileReader 和 FileWriter 是专门操作文件的API * * 获取的 Reader 和 Writer 对象,可以直接读取或写入, * 也可以进一步包装成带缓冲的 Reader 和 Writer * * @param args */ public static void main(String[] args) {
try {
//创建一个 FileReader,会有异常抛出,使用 try catch 捕获 //FileReader 用于读取以字符为基准的文件,用来读取文件的文本数据 FileReader fr=new FileReader("java.txt"); //FileReader 的 read() 方法和 InputStreamReader 相同, //所以可以将 FileReader 包装成一个 BufferedReader BufferedReader br=new BufferedReader(fr);
//写出时使用 FileWriter,其 write()方法和OutputStreamWriter相同 //所以同样可以包装成带缓冲的Writer FileWriter fw=new FileWriter("java_new.txt"); BufferedWriter bw=new BufferedWriter(fw);
String line; while ((line=br.readLine())!=null) { //readLine()的返回值丢失了换行符,需要手动加上 //或 使用 PrintWriter 替代 BufferedWriter bw.write(line+" "); }
//在流关闭之前,需要将BufferedWriter强制输出, //将缓冲输出流 flush 掉 bw.flush();
//写出后,关闭流 bw.close(); fw.close(); br.close(); fr.close(); System.out.println("done");
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
} |
运行一览:
java_new.txt:
运行后,工程结构目录一览:
【made by siwuxie095】