2016-04-13 15 views
0

Dize'de her şeyi yeni nesneme nasıl aktarabilirim? Masaüstümde .txt dosyası var. Dosyayı aramak için başka bir yönteme ihtiyacım var mı?Java, metin dosyasından okuma, satırda hata alma 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

Kodunuz yanlıştır. –

+0

Hangi hatayı alıyorsunuz? 21 numaralı hat hangisi? – azurefrog

+1

Bir tane kıt ayrağın çok fazla olduğu anlaşılıyor ... Bekle, daha kötüsü, bir yöntemin dışında bir kod bloğuna sahipsin? – Tunaki

cevap

1

Yeniden kod yazılan kodun eklenmesi, bir yöntemin dışında kodun eklenmesidir. Sınıfınızın her kurucusuna, bu gerçekten hataya eğilimli olduğu için çok kötü bir uygulamadır. İşte

kodunuzu yeniden ele alınmıştır:

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

Özel durum "ana" java.io.FileNotFoundException dosyasında özel durum: text.txt (Sistem belirtilen dosyayı bulamıyor) \t java.io.FileInputStream. open0 (Yerel Yöntem) java.io.FileInputStream.open \t (Bilinmeyen Kaynak) \t java.io.FileInputStream. (Bilinmeyen Kaynak) \t java.io.FileInputStream. (Bilinmeyen Kaynak) java.io.FileReader adresinde \t. (Bilinmeyen Kaynak) \t, ReadFromTextFile. (ReadFromTextFile.java:10) \t at ReadFromTextFile.main (ReadFromTextFile.java:25) – NickCortes

+0

Bu hata alıyorum – NickCortes

+0

Bunu düzeltmenin en basit yolu yeni bir FileReader gibi bir mutlak yol kullanmaktır ("/ my/mutlak/yol/text.txt "). Göreceli bir yol kullanırsa, user.dir sistem özelliğinin değerine göre olacaktır. –

1

ReadFromTextFile

ve try kod yakalamak eksik
ReadFromTextFile obj1 = new ReadFromTextFile(everything);/

tüm kodu kırılıyor yüzden bu açıklama ... sınıfta hiçbir bile bir yapıcı vardır bölüm

+0

public ReadFromTextFile (BufferedReader br) { \t \t super(); \t \t this.br = br; \t} Bu, bahsettiğiniz kurucu mu? – NickCortes

+0

evet örneğin ... ve bu soru kodunda yayınlanmadı –

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

Bu dikişler beni oluşturmaya çalışıyor. yardım için teşekkürler ;) – NickCortes

İlgili konular