Я пытаюсь прочитать целые числа из текстового файла. Этот файл имеет следующий текст:
3 1.9 a2 8 9
1 3 5.6 xx 7
7.2 abs 7 :+ -4
5
ds ds ds
Я использую randomAccessFile с java. Когда я пытаюсь прочитать первый int, я получаю 857747758 (я написал int number1 = inputStream.nextInt();, а также и другие, подобные этому, для других int в txt-файле). мне сказали, что длина равна 59. Я мне просто интересно, почему он дает мне это большое число, а не только 3? Кроме того, куда мне переместить указатель файла после того, как я прочитал int 3? я знаю, что он начинается с позиции 0, но мне просто нужна помощь, чтобы понять, как перемещается точка файла. Считает ли он пустые места? Я знаю, что он преобразует их в двоичные файлы.
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class Program5 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
RandomAccessFile inputStream = null;
int n1, n2, n3, n4, n5, n6, n7, n8, n9;
int sum = 0;
System.out.println("Please enter the file name you wish to read from.");
String file_name = keyboard.next();
try {
inputStream = new RandomAccessFile(file_name, "r");
n1 = inputStream.readInt();
// inputStream.seek(3);
// n2 = inputStream.readInt();
// n3 = inputStream.readInt();
// n4 = inputStream.readInt();
// n5 = inputStream.readInt();
// n6 = inputStream.readInt();
// n7 = inputStream.readInt();
// n8 = inputStream.readInt();
// n9 = inputStream.readInt();
System.out.println(inputStream.length());
System.out.println(inputStream.getFilePointer());
System.out.println(n1);
// System.out.println(n2);
sum = n1; // n2; /* n3 + n4 + n5 + n6 + n7 + n8 + n9; */
inputStream.close();
} catch (FileNotFoundException e) {
System.out.println("Problem opening up file" + file_name);
System.exit(0);
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println("The sum of the numbers is: " + sum);
System.out.println("End of program.");
}
}
получить это
Please enter the file name you wish to read from.
inputP5.txt
length at 59
file pointer at 4
n1 =857747758
The sum of the numbers is: 857747758
End of program.