2017-11-15 26 views
-3

このエラーが発生するのはなぜですか?テキストファイルから読み込み、パスワードとユーザー名が一致すればログインできるようにする必要がありますが、 "no line is found"というエラーが表示されます。しかし、私のテキストファイルを使用すると、実際のエラーを示した場合、それが参考になるラインスレッドのメインエラーで例外が発生しましたか?

import java.util.*; 
import java.io.*; 

public class Program7_4Part2 { 

public static void main(String[] args) throws IOException { 

    Scanner fileInput = new Scanner(new File("accounts.txt")); 

    // PART 2 

    ArrayList<String> userNames = new ArrayList<>(); 
    ArrayList<String> passwords = new ArrayList<>(); 

    // read data from file 
    while (fileInput.hasNextLine()) { 
     userNames.add(fileInput.next()); 
     String line = fileInput.nextLine(); 
     String[] userName = line.split(" "); 
     userNames.add(userName[0]); 
     passwords.add(userName[1]); 
    } 

    // login 
    System.out.println("Login."); 
    System.out.println("Username: "); 
    String userNameLogin = fileInput.nextLine(); 
    System.out.println("Password: "); 
    String pwLogin = fileInput.nextLine(); 

} 

}

+1

ファイルに次の行がなくなるまでループした後、次の行を読み込もうとしています...この状況ではどうなると思いますか? – azurefrog

+0

どうすれば修正できますか? – Boundz

+1

できません。定義すると、ファイル内の*すべての*行を読み込んだ場合、残っている行はありません。 – azurefrog

答えて

0

を持っています。しかし、私はあなたがこの行からのエラーを取得している疑いがある:

String userNameLogin = fileInput.nextLine(); 

あなたは既にwhileループ内でファイル全体を読みました。だから、ここには次の行がありません。

しかし、おそらくあなたはファイルからではなくSystem.inから読み込みたいと思うでしょう。

+0

それを修正しました!私の次の問題は、正しいユーザー名とパスワードを入力するとログイン確認メッセージを追加することです。 if文が必要なのは分かっていますが、テキストファイルの内容と入力内容をどのように比較すればよいでしょうか? – Boundz

+0

これは非常に広い質問です。文字列を比較する方法がわからない場合は、googleを使用するか、基本的なJavaチュートリアルまたはリファレンスブックを探してください。 –

関連する問題