2017-02-05 7 views
-4

私は名前の文字列ファイルを開くようにしようとしていましたが、実行すると何も起こりません。何もエラーはありません。javaを開くファイルを取得しようとしている

package test; 

import java.io.File; 
import java.util.Scanner; 

public class file { 

    private Scanner x; 

    public void openFile(){ 
     try{ 
      x = new Scanner(new File("Names.txt")); 
     } 
     catch(Exception e){ 
      System.out.println("No file"); 
     } 
    } 

    public void readFile(){ 
     while(x.hasNext()); 
     String a = x.next(); 
     System.out.printf("%s" ,x); 
    } 

    public void closeFile(){ 
     x.close(); 
    } 
} 

package test; 

public class main { 

    public static void main(String[] args){ 
    file file = new file(); 


    file.openFile(); 
    file.readFile(); 
    file.closeFile(); 


    } 

} 

これらは私が作った二つのクラスです。 1つはメソッドを持ち、もう1つのクラスはこれらのメソッドを呼び出します。私はそこにファイルをオープンしないようにしている何かをしていますか?またはあなたがそれを実行しようとすると動作しますか?ありがとう。

+4

に変更しx代わりのaの値を印刷しているチュートリアルを見つけてくださいと 'while'ループの書き方を学ぶの下 。 – ajb

+0

なぜxを印刷しようとしていますか?あなたのwhileループはセミコロンを持っていますが、あなたの考え方は実行されません。 –

+0

@ cricket_007いいえ、実際はありません(つまり、「可能な重複」のコメント)。この質問は、ファイルを見つけることができないというエラーを扱っています。このプログラムのエラーは異なっており、実際にはスキャナの仕組みとは何の関係もありません。 – ajb

答えて

0

あなたがする必要があるのは削除です。 whileループの終わりに この種のもの。

while(x.hasNext()){ 
    String a = x.next(); 
    System.out.printf("%s" ,x); 
} 
0

readFileの中にあなたのWhileループは、ちょうどあなたがあなたの変数の命名とちょうど小さな問題を抱えている

public void readFile(){ 
    while(x.hasNext()){ 
    String a = x.next(); 
    System.out.printf("%s" ,a); 
    } 
} 
0

のように括弧を追加してみてくださいsemicolumnによるコードの次の行を自分自身ではなく実行されています。あなたのreadFileあなただけ

public void readFile(){ 
       while(x.hasNext()){ 
        String a = x.next(); 
        System.out.printf("%s" ,a); 
       } 
      } 
関連する問題