读取完整的文件,而不使用java中的循环
可能重复:
如何从文件的内容创buildJavastring
将整个文本文件转换为Java中的string
我正在尝试使用FileReader读取文件的内容。 但我想阅读文件,而不是逐行阅读。 是否有可能读取整个文件没有循环。 我正在使用下面的代码
try { File ff=new File("abc.txt"); FileReader fr=new FileReader(ff); String s; while(br.read()!=-1) { s=br.readLine(); } } catch(Exception ex) { ex.printStackTrace(); }
如果文件很小 ,则可以一次读取整个数据:
File file = new File("a.txt"); FileInputStream fis = new FileInputStream(file); byte[] data = new byte[(int) file.length()]; fis.read(data); fis.close(); String str = new String(data, "UTF-8");
Java 7一线解决scheme
List<String> lines = Files.readAllLines(Paths.get("file"), StandardCharsets.UTF_8);
要么
String text = new String(Files.readAllBytes(Paths.get("file")), StandardCharsets.UTF_8);
如果您使用的是JDK5或更高版本,则可以尝试使用扫描仪 。
Scanner scan = new Scanner(file); scan.useDelimiter("\\Z"); String content = scan.next();
或者你也可以使用番石榴
String data = Files.toString(new File("path.txt"), Charsets.UTF8);
如果您正在使用Java 5/6,则可以使用Apache Commons IO读取文件以string。 org.apache.commons.io.FileUtils
类包含几个读取文件的方法。
例如使用FileUtils#readFileToString
方法:
File file = new File("abc.txt"); String content = FileUtils.readFileToString(file);