Java代码如何读取文件呢?
下文笔者讲述如何使用java代码读取文件的方法分享,如下所示
java读取文件的方法
实现思路: 方式1: Java 8中Files.lines方法,将会读取文件返回一个stream 如: Stream<String> lines = Files.lines(Paths.get("test.log")); list<String> content = lines.collect(Collectors.toList()); 方式2: Java 7中Files.readAllBytes或Files.readAllLines 如: //返回字节数组 byte[] bytes = Files.readAllBytes(Paths.get("test.log")); String content = new String(bytes); //返回字符串 List<String> content = Files.readAllLines(Paths.get("test.log")); 方式3:经典BufferedReader try (FileReader reader = new FileReader("test.log"); BufferedReader br = new BufferedReader(reader)) { // read line by line String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { //e }
Files.lines
在Java 8中 我们可以使用Files.lines将文件读入Stream 它将自动关闭资源(打开的文件)
package com.java265; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class FileExample1 { public static void main(String[] args) { try { Stream<String> lines = Files.lines(Paths.get("test.log")); List<String> content = lines.collect(Collectors.toList()); content.forEach(x -> System.out.println(x)); } catch (IOException e) { System.err.format("IOException: %s%n", e); } } }
Files.readAllBytes
在Java 7中 可使用Files.readAllBytes或Files.readAllLines读取文件 它将自动关闭资源(打开的文件)
package com.java265; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; public class FileExample2 { public static void main(String[] args) { try { byte[] bytes = Files.readAllBytes(Paths.get("test.log")); String content = new String(bytes); System.out.println(content); } catch (IOException e) { System.err.format("IOException: %s%n", e); } } }
BufferedReader
BufferedReader 带有try-with-resources 可自动关闭资源
package com.java265; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class FileExample3 { public static void main(String[] args) { try (FileReader reader = new FileReader("test.log"); BufferedReader br = new BufferedReader(reader)) { // read line by line String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.err.format("IOException: %s%n", e); } } }
使用Scanner扫描文件示例
package com.java265; import java.io.FileReader; import java.io.IOException; import java.util.Scanner; public class FileExample4 { public static void main(String[] args) { try (FileReader fr = new FileReader("test.log"); Scanner scanner = new Scanner(fr)) { StringBuilder sb = new StringBuilder(); while (scanner.hasNext()) { sb.append(scanner.nextLine()).append("\n"); } System.out.println(sb.toString()); } catch (IOException e) { System.err.format("IOException: %s%n", e); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。