我正在从example.com/test.txt下载文本文件,我只在应用程序的运行时间内需要内容,不需要将它们保存到静态文件中。
到目前为止我的代码:
InputStream input = new BufferedInputStream(getURL.openStream());
OutputStream output = new FileOutputStream(tempFile);
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
我如何将在线文件内容写入String而不是在本地保存文件?我曾尝试将data
附加到while语句中的String,但只是出现乱码(正如预期的那样,但我不知道还能做什么)。将byte
转换回String?
感谢您的帮助!
答案 0 :(得分:1)
而不是FileOutputStream使用ByteArrayOutput流。然后,您可以调用toString将其转换为字符串。
InputStream input = new BufferedInputStream(getURL.openStream());
OutputStream output = new ByteArrayOutputStream();
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
String result = output.toString();
答案 1 :(得分:1)
您可以使用类似于here所述的方法。
来自Java文档的代码段:
URL yahoo = new URL("http://www.yahoo.com/");
BufferedReader in = new BufferedReader(
new InputStreamReader(
yahoo.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
您只需要将每一行附加到String而不是将其发送到System.out。