字符流操作文件
import java.io.*; public class Example08 { public static void main(String[] args) throws Exception { // 创建一个FileReader对象用来读取文件中的字符 FileReader reader = new FileReader("reader.txt"); int ch; // 定义一个变量用于记录读取的字符 while ((ch = reader.read()) != -1) { // 循环判断是否读取到文件的末尾 System.out.println((char) ch); // 不是字符流末尾就转为字符打印 } reader.close(); // 关闭文件读取流,释放资源 } }
写入文件
import java.io.*; public class Example09 { public static void main(String[] args) throws Exception { // 创建一个FileWriter对象用于向文件中写入数据 FileWriter writer = new FileWriter("writer.txt"); String str = "你好,北京"; writer.write(str); // 将字符数据写入到文本文件中 writer.write(" "); // 将输出语句换行 writer.close(); // 关闭写入流,释放资源 } }
缓冲流拷贝文件
import java.io.*; public class Example10 { public static void main(String[] args) throws Exception { FileReader reader = new FileReader("src.txt"); // 创建一个BufferedReader缓冲对象 BufferedReader br = new BufferedReader(reader); FileWriter writer = new FileWriter("des.txt"); // 创建一个BufferdWriter缓冲区对象 BufferedWriter bw = new BufferedWriter(writer); String str; while ((str = br.readLine()) != null) { // 每次读取一行文本,判断是否到文件末尾 bw.write(str); bw.newLine(); // 写入一个换行符,该方法会根据不同的操作系统生成相应的换行符 } br.close(); bw.close(); } }
LineNumberReader
import java.io.*; public class Example11 { public static void main(String[] args) throws Exception { FileReader fr = new FileReader("Example09.java"); // 创建字符输入流 FileWriter fw = new FileWriter("copy.java"); // 创建字符输出流 LineNumberReader lr = new LineNumberReader(fr); // 包装 lr.setLineNumber(0); // 设置读取文件的起始行号 String line = null; while ((line = lr.readLine()) != null) { fw.write(lr.getLineNumber() + ":" + line); // 将行号写入到文件中 fw.write(" "); // 写入换行 } lr.close(); fw.close(); } }
转换流
import java.io.*; public class Example12 { public static void main(String[] args) throws Exception { FileInputStream in = new FileInputStream("src.txt");// 创建字节输入流 InputStreamReader isr = new InputStreamReader(in); // 将字节流输入转换成字符输入流 BufferedReader br = new BufferedReader(isr); // 对字符流对象进行包装 FileOutputStream out = new FileOutputStream("des.txt"); // 将字节输出流转换成字符输出流 OutputStreamWriter osw = new OutputStreamWriter(out); BufferedWriter bw = new BufferedWriter(osw); // 对字符输出流对象进行包装 String line; while ((line = br.readLine()) != null) { // 判断是否读到文件末尾 bw.write(line); // 输出读取到的文件 } br.close(); bw.close(); } }