テキストファイルからデータを読み込み、配列に挿入しようとしていますが、ファイル内の1行の空白は新しい配列が作成されることを意味します。 2本のラインとスキャナを閉じてください。ここでは、テキストファイルには、次のとおりです。スキャナがファイルの終わりを検出するJava
`Test
test
test
Telephone
Cardiology
Test Doctor 2
Test
20 Test
Telephone
Cardiology
`
public Object[][] readData() throws FileNotFoundException{
Scanner sc = new Scanner(new File("DoctorRecordsFile.txt"));
String line;
int emptyFile = 0 ;
int i = 0;
int x = 0;
String[][] doctor = new String[100][5];
while (emptyFile <= 1){
line = sc.nextLine() ;
if ((!line.isEmpty())){
doctor[i][x] = line;
System.out.println(doctor[i][x]);
x++;
emptyFile = 0;
}
else{
System.out.println("PRE call emptyFile: " + emptyFile);
emptyFile++;
System.out.println("Post call emptyFile: " + emptyFile);
if(emptyFile >= 2){
sc.close();
}
else{
i++;
x = 0;
}
}
}
return new Object[][]{doctor[0]};
私は期待して、実際の結果は、スキャナがクローズし、データで読むのをやめ、ここに私のコンソールエラーがあるということである。このために探し
at java.util.Scanner.nextLine(Scanner.java:1540)
at medicalsystem.ReadInDoctors.readData(ReadInDoctors.java:35)
at medicalsystem.MainMenu.View_Doctor_ButtonActionPerformed(MainMenu.java:193)
あなたは、単にだけで新しい行 – BlooB
を含む行を探すことができますアクセント記号間のテキストファイルの内容は?私はテキストファイルに2つの空白行がありません。 hasNextLine()で次の行があるかどうかを調べる必要があります。 – TurtlesAllTheWayDown