文件读写示例
package com.demo; import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class FileUtil { public static void main(String[] args) throws IOException { // 覆盖写入 PrintWriter writer = new PrintWriter(new FileWriter("data.txt")); writer.println("hello"); writer.println("world"); writer.close(); // 追加写入 PrintWriter appendWriter = new PrintWriter(new FileWriter("data.txt", true)); appendWriter.println("hello"); appendWriter.println("world"); appendWriter.close(); // 按行读取 List<String> list = new ArrayList<>(); Scanner scanner = new Scanner(new FileReader("data.txt")); while (scanner.hasNextLine()) { String line = scanner.nextLine(); list.add(line); } scanner.close(); System.out.println(list); // [hello, world, hello, world] } }
工具类封装
写入
package com.demo.fileutil; import java.io.IOException; import java.io.PrintWriter; public class FileWriter { private PrintWriter writer; public FileWriter(String fileName) throws IOException { this(fileName, false); } public FileWriter(String fileName, boolean append) throws IOException { this.writer = new PrintWriter(new java.io.FileWriter(fileName, append)); } public void println(String content){ this.writer.println(content); } public void print(String content){ this.writer.print(content); } public void close(){ this.writer.close(); } }
读取
package com.demo.fileutil; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class FileReader { private String fileName; public FileReader(String fileName) { this.fileName = fileName; } public List<String> readLines() throws FileNotFoundException { List<String> list = new ArrayList<>(); Scanner scanner = new Scanner(new java.io.FileReader(this.fileName)); while (scanner.hasNextLine()) { String line = scanner.nextLine(); list.add(line); } scanner.close(); return list; } public String readAll() throws IOException { StringBuilder sb = new StringBuilder(); java.io.FileReader reader = new java.io.FileReader(this.fileName); int len = 0; char[] data = new char[1024]; while ((len = reader.read(data)) != -1) { sb.append(data, 0, len); } reader.close(); return sb.toString(); } }
测试
package com.demo; import com.demo.fileutil.FileReader; import com.demo.fileutil.FileWriter; import java.io.IOException; import java.util.List; public class TestFileUtil { public static void main(String[] args) throws IOException { FileWriter writer = new FileWriter("data.txt", true); writer.println("hello"); writer.println("world"); writer.close(); FileReader reader = new FileReader("data.txt"); String content = reader.readAll(); System.out.print(content); // hello // world List<String> list = reader.readLines(); System.out.println(list); // [hello, world] } }