2012-04-20 22 views
6

Ho capito come leggere riga per riga e visualizzare il contenuto di un documento di testo riga per riga in una jtextarea e ho capito come scrivere riga per riga da una serie di stringhe al documento di testo. Sto solo facendo fatica a ottenere ogni riga dalla textarea, non appena riesco a ottenere ogni riga in un array che sono a posto. Di seguito è riportato il codice che sto per usare per scrivere ogni riga al file ...Come leggere riga per riga da un'area di testo

public class FileWrite { 

    public static void FileClear(String FileName) throws IOException{ 
     FileWriter fstream = new FileWriter(FileName,true); 
     BufferedWriter out = new BufferedWriter(fstream); 
     out.write(""); 
    } 

    public static void FileWriters(String FileName, String Content) throws IOException 
    { 
     FileWriter fstream = new FileWriter(FileName,true); 
     BufferedWriter out = new BufferedWriter(fstream); 
     out.append(Content); 
     out.newLine(); 

    } 
} 

Grazie

c

+0

Possibile duplicato: http://stackoverflow.com/questions/454908/split-java-string-by-new-line – erikxiv

risposta

20

Quello che si ottiene da TextArea è solo una stringa. Dividilo a newline e hai la tua stringa [].

for (String line : textArea.getText().split("\\n")) doStuffWithLine(line); 
+0

quindi se ho un file con 10 righe di testo che dovrebbe darmi linee [1-9 ]? – Charlie

+0

Gli indici di array sono a base zero. [0-9]. –

+0

Intendevo 0 whoops haha, ho una domanda, quando eseguo il ciclo for mi dà un errore arrayindexoutofbounds sull'ultima riga, è perché non c'è un'altra riga dopo di essa in modo che non possa dividerla? come posso risolvere questo? Grazie – Charlie

0

ho cercato di utilizzare i metodi forniti dalla classe JTextArea rispondere a questa domanda.

Spero che questo aiuti qualcuno dal momento che non ho trovato la risposta quando l'ho cercato su Google. Tutto quello che dovete fare ora è implementare il metodo ProcessLine (String lineStr)

 int lines = textArea.getLineCount(); 

     try{// Traverse the text in the JTextArea line by line 
      for(int i = 0; i < lines; i ++){ 
       int start = textArea.getLineStartOffset(i); 
       int end = texttArea.getLineEndOffset(i); 
       // Implement method processLine 
       processLine(textArea.getText(start, end-start)); 

      } 
     }catch(BadLocationException e){ 
      // Handle exception as you see fit 
     } 

Vedere la definizione della classe qui JTextArea Java 1.7

Felice di codifica !!!

Problemi correlati