Как прочитать числа из файла
У меня есть файл с следующими числами:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
И я хочу их вывести на консоль.
Я написала код:
public static void main(String[] args) throws IOException {
File f=new File("C:\\Users\\Tatiana\\Documents\\e.txt");
FileReader is =new FileReader(f);
System.out.println(is);
is.close();
}
Вот что мне выводит на консоль:
java.io.FileReader@10f87f48
Ответы (2 шт):
Вот так если все твои числа записаны просто через пробел, и тебе нужно вывести их так же как они записаны:
import java.io.*;
public class ReadFileTest {
public static void main(String[] args) throws IOException {
File f=new File("D:\\путь к файлу\\e.txt");
FileReader is =new FileReader(f);
BufferedReader br = new BufferedReader(is);
StringBuilder sb = new StringBuilder("").append(br.readLine());
System.out.println(sb.toString());
is.close();
}
}
Вот так если нужно вывести каждое значение отдельно (при этом не разбирая его)
import java.io.*;
public class ReadFileTest {
public static void main(String[] args) throws IOException {
File f=new File("D:\\Путь к файлу\\e.txt");
FileReader is =new FileReader(f);
BufferedReader br = new BufferedReader(is);
StringBuilder sb = new StringBuilder("").append(br.readLine());
String[] tmp = sb.toString().split(" ");
for(int i = 0; i < tmp.length; i++)
System.out.println(tmp[i]);
is.close();
}
}
Ну а вообще, установи какую-нить хорошую IDE, которая подсказывает что можно в конкретном контексте, а чего нельзя, и изучай язык, библиотеку функций, и IDE вместе и с большим количеством практики.
P.S.: и Стас в комментарии тоже очень полезный совет дает
То, что Вы видите, это результат стандартной реализации метода toString(). Чаще всего, это значение не несет осмысленного значения, и для представления объекта в виде текста, метод надо перегружать.
В Вашем примере Вы пытаетесь представить объект класса FileReader в виде текста, что вызывает как раз стандартную реализацию toString()
Я бы предложил Вам упростить код используя стандартные средства Java для разбиения входящего потока на токены. Например Ваша задача решится вот так:
public static void main(String[] args) throws FileNotFoundException {
Scanner scanner = new Scanner(new FileInputStream("PATH_TO_FILE_HERE"));
while (scanner.hasNextInt()){
System.out.println(scanner.nextInt());
}
}