什么是最简单的方法来读取文件到字符串?
这个问题在这里已经有了答案:
是的,你可以在一行中做到这一点(尽管对于你不想要的健壮的IOException处理)。
String content = new Scanner(new File("filename")).useDelimiter("Z").next();
System.out.println(content);
这使用一个java.util.Scanner ,告诉它用字符串锚点的结尾Z来分隔输入。 这最终使得输入有一个实际的令牌,这是整个文件,所以它可以通过一次调用next()来读取。
有一个构造函数接受一个File和一个String charSetName (在许多其他重载中)。 这两个构造函数可能会抛出FileNotFoundException ,但与所有Scanner方法一样,除了这些构造函数之外,不会IOException 。
如果发生IOException您可以通过ioException()方法查询Scanner本身。 读取内容后,您可能还想显式close() Scanner ,因此可能将Scanner参考存储在本地变量中是最好的。
也可以看看
相关问题
第三方库选项
为了完整起见,如果您拥有这些非常有信誉且非常有用的第三方库,这些都是非常好的选择:
番石榴
com.google.common.io.Files包含许多有用的方法。 这里相关的是:
String toString(File, Charset) String List<String> readLines(File, Charset) List<String> ,每行一个条目 Apache Commons / IO
org.apache.commons.io.IOUtils也提供类似的功能:
String toString(InputStream, String encoding) InputStream的内容作为String List readLines(InputStream, String encoding) String List ,每行一个条目 相关问题
从Java 7(API描述)开始,您可以执行以下操作:
new String(Files.readAllBytes(Paths.get(filePath)), StandardCharsets.UTF_8);
其中filePath是表示要加载的文件的字符串。
你可以使用apache commons IO ..
FileInputStream fisTargetFile = new FileInputStream(new File("test.txt"));
String targetFileStr = IOUtils.toString(fisTargetFile, "UTF-8");
链接地址: http://www.djcxy.com/p/72325.html
