Java - 直接读取文件而无需在本地下载和存储

时间:2011-02-17 15:43:21

标签: java

我想直接读取文件,将其放入字符串而不在本地存储文件。我曾经用旧项目做这个,但我不再有源代码了。我曾经以这种方式获得我的网站的来源。

但是,我不记得是否通过“InputStream to String array of lines to String”,或者我直接将其读入String。

是否有这个功能,或者我记得错了吗?

(注意:此函数将是PHP等效于file_get_contents($path)

3 个答案:

答案 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) (不应该很难从文件中获取路径)。

您可以使用该库或查看代码 - 因为它已打开。