java读取txt文件行的两种方式对比
Posted oktokeep
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java读取txt文件行的两种方式对比相关的知识,希望对你有一定的参考价值。
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; /** * 读取txt文件的行 * */ public class FileUtil { /** * java.nio.file.Files方式 * @param filePath * @return */ public static List<String> parseFileContext(String filePath) { System.out.println("filePath="+filePath); List<String> dataArray = null; try { dataArray = Files.readAllLines(Paths.get(filePath)); } catch (IOException e) { e.printStackTrace(); } return dataArray; } /** * 流方式 * @param filePath * @return */ public static List<String> oldParseFileContext(String filePath) { System.out.println("filePath="+filePath); List<String> dataArray = new ArrayList<String>(); FileInputStream fis = null; InputStreamReader isr = null; BufferedReader br = null; // 用于包装InputStreamReader,提高处理性能。因为BufferedReader有缓冲的,而InputStreamReader没有。 try { String str = ""; fis = new FileInputStream(filePath);// FileInputStream isr = new InputStreamReader(fis); br = new BufferedReader(isr); while ((str = br.readLine()) != null) { dataArray.add(str); } } catch (Exception e) { e.printStackTrace(); } finally { try { br.close(); isr.close(); fis.close(); } catch (Exception e2) { e2.printStackTrace(); } } return dataArray; } public static void main(String[] args) { String path = "E:\test.txt"; // List<String> lst = parseFileContext(path); List<String> lst = oldParseFileContext(path); for (String string : lst) { System.out.println("string="+string); } } }
以上是关于java读取txt文件行的两种方式对比的主要内容,如果未能解决你的问题,请参考以下文章