Я создал метод под названием readFileAsScanner
. Он создает файл и Scanner
, который прикрепляется к файлу. Затем возвращает Scanner
.Почему сканер нельзя использовать повторно?
Тем не менее, я использую его. Scanner
может использоваться только один раз. Зачем? Могу ли я сбросить его методом reset()
Scanner
, чтобы сделать его многоразовым?
import java.io.*;
import java.util.*;
public class Lab10{
public static void main(String[] args)throws FileNotFoundException{
String[] words = readWords();
int i;
for(i=0;i<words.length;i++)
System.out.println(words[i]);
System.out.println(words.length);
}
public static String[] readWords()throws FileNotFoundException{
Scanner data = readFileAsScanner();
String[] words = new String[estimateWords(data)];
int i=0;
while(data.hasNext()){
System.out.println(data.next());
}
return words;
}
public static Scanner readFileAsScanner() throws FileNotFoundException{
Scanner input = new Scanner(System.in);
System.out.println("Input file name:");
//String fileName = input.next();
String fileName = "unsorted.txt";
Scanner data = new Scanner(new File(fileName));
return data;
}
public static int estimateWords(Scanner data){
int estimatedSize = 0;
while(data.hasNext()){
data.next();
estimatedSize++;
}
return estimatedSize;
}
}
Ваш сканер, похоже, прикреплен к 'System.in'; а не файл. –
У меня есть два сканера. Второй - тот, который я прошу. – Fan