2012-04-20 134 views
6

He descubierto cómo leer en línea por línea y mostrar el contenido de un documento de texto línea por línea en un jtextarea y he descubierto cómo escribir línea por línea desde una matriz de cadenas al documento de texto. Solo estoy teniendo dificultades para obtener cada línea del área de texto, tan pronto como pueda obtener cada línea en una matriz, estoy listo para comenzar. A continuación se muestra el código que voy a utilizar para escribir cada línea en el fichero ...Cómo leer línea por línea desde un área de texto

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(); 

    } 
} 

Gracias

c

+0

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

Respuesta

20

Lo que se obtiene a partir TextArea es sólo una cadena. Dividirlo en nueva línea y tienes tu String [].

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

así que si tengo un archivo con 10 líneas de texto que debería darme líneas [1-9 ]? – Charlie

+0

Los índices de matriz están basados ​​en cero. [0-9] –

+0

Quise decir 0 ¡Vaya, ja, tengo una pregunta! Cuando ejecuto mi bucle for, me da un error de matriz en la salida de la última línea, ¿eso es porque no hay otra línea después para que no pueda dividirse? ¿Cómo puedo solucionar esto? Gracias – Charlie

0

He intentado utilizar los métodos proporcionados por la clase JTextArea para responder esta pregunta.

Espero que esto ayude a alguien ya que no pude encontrar la respuesta cuando busqué en Google. Todo lo que hay que hacer ahora es poner en práctica el método 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 
     } 

Véase la definición de la clase aquí JTextArea Java 1.7

feliz de codificación !!!

Cuestiones relacionadas