Я загружаю текстовый файл из 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
в String в while-statement, но просто получить искаженный текст (как и ожидалось, но я не знаю, что еще делать). Преобразовать byte
назад в строку?
Спасибо за вашу помощь!
Вместо 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();
Вы можете использовать метод, аналогичный описанному здесь.
Фрагмент кода из документов 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();
Вам просто нужно добавить каждую строку в строку, а не отправлять ее в System.out.