2017-08-30 12 views
-1

.txtファイルからテキストを取得して、Systemに書き込もうとしていますが、動作しません。 私User.txtファイルは、私は、ユーザーを取得し、一度に1を渡すとSystemでそれを見せたい.txtファイルからテキストを取得

user:pass 
user2:pass2 
etc 

の形式を持っています。 「詳細」の

現在のシステムは、.txtファイル 「ユーザ名」へのパスは「C」 「パスワード」をそれぞれ示す私はCは、パスファイルを起動来ると仮定しています「C」 示しています。なぜ私は.txtファイルからテキストを取得していないのか分かりません。

私は間違っていますか?

また、最初の反復後に.txt全体をクリアします。

String username; 
String password; 
String details; 

try { 
    Scanner fileScanner = new Scanner(getDirectoryData() + "User.txt"); 
    details = fileScanner.nextLine(); 
    System.out.println(details); 
    username = details.split(":")[0].split("@")[0]; 
    password = details.split(":")[0]; 

    System.out.println(username); 
    System.out.println(password); 

    FileWriter fileStream = new FileWriter(getDirectoryData() + "User.txt"); 
    BufferedWriter out = new BufferedWriter(fileStream); 

    // sendMessage("INFO:BOT:" + username); 

    while(fileScanner.hasNextLine()) { 
    String next = fileScanner.nextLine(); 
    if(next.equals("\n")) { 
     out.newLine(); 
    } else { 
     out.write(next); 
     out.newLine(); 
    } 
    } 

    out.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

ちなみに、Stack Overflowはフォーラムではなく、Q&Aサイトであり、ディスカッションフォーラムとはまったく異なる規約を持っています。詳細については、[ツアー]のサイトをお読みください。 – EJoshuaS

答えて

1

あなたが抱えている問題は、スキャナがgetDirectoryData() + "User.txt"として文字通りの文字列を読み込む代わりに、読みたいファイルを読んでいるということです。そのため、ファイルの内容の代わりにファイルの名前を取得しています。ここで

は、あなたがこの問題を解決するようにコードを修正することができる方法は次のとおりです。

File file = new File(getDirectoryData() + "User.txt"); 
    Scanner fileScanner = new Scanner(file); 
    details = fileScanner.nextLine(); 
    System.out.println(details); 
0

ファイルからすべてのエントリを読みたいと思っている場合は、おそらくあなたがこれを行うと、あなたの要件ごとにファイルディレクトリを変更してくださいする必要があります。

public static void reader(){ 
     String details; 

     try{ 
      File file = new File("file/User.txt"); 
      Scanner input = new Scanner(file); 

      while(input.hasNextLine()){ 
       details = input.nextLine(); 
       System.out.println(" read file details : "+details); 
      } 
      input.close(); 

     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
関連する問題