2017-07-12 3 views
0

Hallo Ich versuche, eine Methode zu erstellen, in der TextArea setText-Methode für javafx verwendet werden.Javafx TextArea setText-Methode mit Textdateien

Ich versuche, ein Verfahren zu erhalten, das dies tut:

public static void setTextArea(String fileName) { 

    String line; 

    try { 
     FileReader fileReader = new FileReader(fileName); 
     BufferedReader buffer = new BufferedReader(fileReader); 

     while ((line = buffer.readLine()) != null) { 
      out.println(line); 
     } 
     buffer.close(); 
} catch //etc etc 

aber ich kann es nicht in der setText Methode verwenden, weil es eine void-Methode ist. Kann jemand helfen, diese Methode zu übersetzen, damit sie in der TextArea setText-Methode funktionieren kann? -Danke!

Antwort

0

Sie nur die Zeilen zu System.out denke ich denke. Sie müssen den Inhalt der Textdatei hinzufügen, indem so etwas wie diese

public static void setTextArea(String fileName) { 

String line; 
String content; 

try { 
    FileReader fileReader = new FileReader(fileName); 
    BufferedReader buffer = new BufferedReader(fileReader); 

    while ((line = buffer.readLine()) != null) { 
     out.println(line); 
     content += line; 
    } 
    buffer.close(); 
} catch //etc etc 

Dann tun Sie entweder content oder setText(content) aus der Textarea-Klasse rufen zurückkehren können. Wenn es eine große Datei ist, dann wäre die Verwendung von StringBuilder wahrscheinlich eine bessere Idee, anstatt jede Zeile zu verketten.

+0

Wissen Sie, warum im Textfeld mit "Null" beginnt und dann mit dem Text fortfährt? Wenn es in der Laufbox von Java gedruckt wird, hat es keine Null –

0

Sie werden die Daten aus der Datei erhalten müssen und und stellen Sie die Daten an .. textarea

TextArea txtArea = new TextArea(); 
    String data = getDataForTextArea(String fileLocation); 
    txtArea.setText(data); 
public String getDataForTextArea(String fileLocation) { 
    InputStream inputStream = new FileInputStream(fileLocation); 
     if (inputStream != null) { 
      int b; 
      String txtData = ""; 
      try { 
       while ((b = inputStream.read()) != -1) { 
        txtData += (char) b; 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } finally { 
       inputStream.close(); 
      } 
      return txtData; 
    } 

Stellen Sie sicher, für Nullpointer zu überprüfen.