什么是最简单的方法来读取文件到字符串?
这个问题在这里已经有了答案:
是的,你可以在一行中做到这一点(尽管对于你不想要的健壮的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