2016-04-13 15 views
0

Stringオブジェクトをすべて新しいオブジェクトに渡すにはどうすればよいですか?デスクトップに.txtファイルがあります。ファイルを検索する別の方法が必要ですか?Javaがテキストファイルから読み込まれ、21行目でエラーが発生する

public class ReadFromTextFile { 

    try(BufferedReader br = new BufferedReader(new FileReader("text.txt"))) { 
     StringBuilder sb = new StringBuilder(); 
     String line = br.readLine(); 

     while (line != null) { 
      sb.append(line); 
      sb.append(System.lineSeparator()); 
      line = br.readLine(); 
     } 
     String everything = sb.toString(); 
    } 

    public static void main(String[] args) { 

     ReadFromTextFile obj1 = new ReadFromTextFile(everything); // error here 
     System.out.println(); 
    } 

} 
} 
+1

あなたのコードが間違っています。 –

+0

どのようなエラーが表示されますか? 21行はどちらですか? – azurefrog

+1

あなたは1つの中かっこをあまりにも多く持っているようです...待ってはいけません、それよりも悪いです、メソッドの外にコードのブロック全体がありますか? – Tunaki

答えて

1

コードを書き直す必要があります。メソッドの外側にコードブロックを追加するとdoinと同等ですあなたのクラスの各コンストラクタにそれを組み込みます。これは実際にエラーが起こりやすいので、非常に悪い習慣です。ここで

はあなたのコードを書き換えることができる方法である:

public class ReadFromTextFile { 

     private final String everything; 

     public ReadFromTextFile() throws IOException { 
      try(BufferedReader br = new BufferedReader(new FileReader("text.txt"))) { 
       StringBuilder sb = new StringBuilder(); 
       String line = br.readLine(); 

       while (line != null) { 
        sb.append(line); 
        sb.append(System.lineSeparator()); 
        line = br.readLine(); 
       } 
       this.everything = sb.toString(); 
      } 
     } 

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

      ReadFromTextFile obj1 = new ReadFromTextFile(); 
      System.out.println(obj1.everything); 
     } 

    } 
+0

スレッド "main"の例外java.io.FileNotFoundException:text.txt(システムが指定されたファイルを見つけることができません) \t at java.io.FileInputStream open0(ネイティブメソッド) \t at java.io.FileInputStream.open(不明なソース) \t at java.io.FileInputStream (不明な情報源) \t at java.io.FileInputStream (不明な情報源) \t at java.io.FileReader (不明な情報源) \t at ReadFromTextFile (ReadFromTextFile.java:10) \t ReadFromTextFile.main(ReadFromTextFile.java:25) – NickCortes

+0

これは私が得るエラーです – NickCortes

+0

これを修正する最も簡単な方法は、新しいFileReader( "/ my /絶対パス/テキスト/テキスト.txt ")。相対パスを使用する場合は、システムプロパティuser.dirの値に相対的になります。 –

1

ReadFromTextFile

とあなたのtryコードがキャッチが欠落している
ReadFromTextFile obj1 = new ReadFromTextFile(everything);/

は、すべてのコードを破っているので、この文...クラスの無でも、コンストラクタはありセクション

+0

public ReadFromTextFile(BufferedReader br){ \t \t super(); \t \t this.br = br; \t} これはあなたが言及したコンストラクタですか? – NickCortes

+0

はい...あり質問のコードに掲載されていません –

0
import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.io.IOException; 

public class ReadFromTextFile { 

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

     File file = new File("C:/text.txt"); 
     BufferedReader br; 
     String curentLine; 
     try { 
      br = new BufferedReader(new FileReader(file)); 
      while ((curentLine = br.readLine()) != null) { 
       System.out.println(curentLine); 
      } 
      br.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 
} 
+0

この縫い目は私に作用します。助けてくれてありがとう ;) – NickCortes

関連する問題