我想直接读取文件,将其放入字符串而不在本地存储文件。我曾经用旧项目做这个,但我不再有源代码了。我曾经以这种方式获得我的网站的来源。
但是,我不记得是否通过“InputStream to String array of lines to String”,或者我直接将其读入String。
是否有这个功能,或者我记得错了吗?
(注意:此函数将是PHP等效于file_get_contents($path)
)
答案 0 :(得分:1)
您需要使用InputStreamReader
将二进制输入流转换为适合阅读文本的Reader
。
之后,您需要阅读阅读器的末尾。
就我个人而言,我会用Guava完成所有这些操作,CharStreams.toString(Readable)
有这种方法的便利方法,例如{{3}}
当您创建InputStreamReader
时,请确保提供相应的字符编码 - 如果不这样做,您将获得垃圾文本(就像尝试播放MP3文件一样,就像它是WAV一样) ,例如)。
答案 1 :(得分:1)
没有直接的方法可以将File
读入String
。
但是有一个快速的选择 - 将File
读入字节数组并将其转换为字符串。
未测试:
File f = new File("/foo/bar");
InputStream fStream = new FileInputStream(f);
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
for(int data = fStream.read(); data > -1; data = fStream.read()) {
b.write(data);
}
String theResult = new String(bStream.toByteArray(), "UTF-8");
答案 2 :(得分:1)
查看apache-commons-io以及您的用例FileUtils.readFileToString(File file) (不应该很难从文件中获取路径)。
您可以使用该库或查看代码 - 因为它已打开。