Java代码如何实现逐行读取文件内容呢?
下文笔者讲述使用Java代码逐行读取文件内容的方法分享,如下所示
逐行读取文件内容的实现思路
使用BufferedReader、BufferedReader.lines、Files.readAllLines() 、Guava、Apache Commons IO第三方库进行文件按行读取的操作例:
使用BufferedReader
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; class Main { public static void main(String[] args) { File file = new File("test.txt"); try (BufferedReader br = new BufferedReader(new FileReader(file))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
Java 8及以上版本,使用BufferedReader.lines()获取所有行信息
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; class Main { public static void main(String[] args) { File file = new File("test.txt"); try { BufferedReader reader = new BufferedReader(new FileReader(file)); reader.lines().forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }
使用Files Class中的Files.readAllLines()方法
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.list; import java.nio.charset.StandardCharsets; class Main { public static void main(String[] args) { Path path = Paths.get("test.txt"); try { List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8); lines.stream().forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }
使用Java 8中的Files.lines()方法
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.stream.Stream; import java.nio.charset.StandardCharsets; class Main { public static void main(String[] args) { Path path = Paths.get("test.txt"); try (Stream<String> stream = Files.lines(path, StandardCharsets.UTF_8)) { stream.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }
使用Guava库中readLines()方法
import com.google.common.io.Files; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; class Main { public static void main(String[] args) { File file = new File("test.txt"); try { Files.readLines(file, StandardCharsets.UTF_8) .forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }
使用Apache Commons IO库中的readLines()方法
import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; class Main { public static void main(String[] args) { File file = new File("test.txt"); try { FileUtils.readLines(file, StandardCharsets.UTF_8) .forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }
使用Scanner Class从指定文件扫描值
import java.io.File; import java.io.IOException; import java.util.Scanner; import java.nio.charset.StandardCharsets; class Main { public static void main(String[] args) { File file = new File("test.txt"); try (Scanner sc = new Scanner(file, StandardCharsets.UTF_8)) { while (sc.hasNextLine()) { System.out.println(sc.nextLine()); } } catch (IOException e) { e.printStackTrace(); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。