Как сканер может перечитать весь файл после того, как уже один раз выполнил hasNextLine?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сканер может перечитать весь файл после того, как уже один раз выполнил hasNextLine?

Сообщение Anonymous »

Каким образом сканеру лучше всего перечитать содержимое файла с самого начала? Поскольку в функции verticesSet я использую while (scanner.hasNextLine()), который читает до тех пор, пока в файле не останется значений, поскольку он уже прочитал их все, когда я вызываю функцию EdgeSet, ничего не происходит, потому что она пытается читать значения из файла, но «курсор» расположен в самом конце.
Я знаю, что это можно предотвратить, повторно открыв новый сканер и передав его в функцию EdgeSet, но правильно ли это сделать? Например, если у меня есть 10 других функций, я, вероятно, не захочу каждый раз создавать новый сканер. Есть ли способ заставить его читать с начала файла?
public class Test{

public static void main(String[] args) {
File fileName = new File("test.txt");
try {
Scanner scanner = new Scanner(fileName );
verticesSet(scanner);
edgesSet(scanner);
scanner.close();
} catch (FileNotFoundException exception) {
System.err.println("file not found" + exception.getMessage());
}
}

public static void verticesSet(Scanner scanner) {
Set verticesSet = new HashSet();
while (scanner.hasNextLine()) {
verticesSet.add(scanner.nextInt());
}
System.out.println(verticesSet);
}

public static void edgesSet(Scanner scanner) {
List edges = new ArrayList();

while (scanner.hasNextLine()) {
edges.add(scanner.nextLine());
}

for (int i = 0; i < edges.size(); i++) {
System.out.println("index" + i + " is" + edges.get(i));
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/782 ... ed-hasnext
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»