2013-12-19 4 views
-1

Все, что я пытаюсь сделать, это реализовать простой текстовый редактор. Я буду держать это просто.
У меня есть text-area и string variable, чтобы сохранить текст и файл, чтобы написать содержимое text-area. Наглядно, я думаю, что это лучший способ (лучше читаемость/проворный код), чтобы сделать то же самое ниже, и это должно работать для блокнота:Реализация простого текстового редактора

FileWriter out = new FileWriter("filename.txt"); 
String sh = jTextArea1.getText(); 

for (int i=0; i<sh.length(); i++) 
{ 
    if (sh.charAt(i) == '\n') 
      out.write("\r\n"); 
    else 
     out.write(sh.charAt(i)); 
    } 
    out.close(); 
+5

Итак, что именно ваша проблема? – OldProgrammer

+0

цикл for несколько отталкивает меня от поиска в однострочном пространстве ... он работает для других редакторов .. например, в Wordpad и т. Д., Но блокнот пропускает новые строковые символы, если я не использую «\ r \ n " –

+0

[OT] также go thro '[1] gr8 учебник http://forum.codecall.net/topic/49721-simple-text-editor/ –

ответ

0

Используйте JTextPane вместо JTextArea. Вам также нужен объект Document. Там намного больше универсальности. Тогда Вы можете использовать один лайнер, чтобы написать весь документ в файл

BufferedWriter bw = new BufferedWriter(new FileWriter(file)); 

textPane.getEditorKit().write(bw, doc, 0, doc.getLength()); <-- one line 

Javadoc

public abstract void write(OutputStream out, 
     Document doc, 
     int pos, 
     int len) 
        throws IOException, 
          BadLocationException 

Записывает содержимое из документа данного потока в формате, подходящем для этого вида контента обработчик.

Parameters: 
    out - The stream to write to 
    doc - The source for the write. 
    pos - The location in the document to fetch the content from >= 0. 
    len - The amount to write out >= 0. 

JTextPane javadoc | EditorKit javadoc | Text Components Tutorial < - Я действительно рекомендую это.

0

Используйте read(...) и write(...) методы в JTextComponent:

FileReader reader = new FileReader(...); 
BufferedReader br = new BufferedReader(reader); 
edit.read(br, null); 

FileWriter writer = new FileWriter(...); 
BufferedWriter bw = new BufferedWriter(writer); 
edit.write(bw); 
+0

спасибо .... это имеет смысл –

Смежные вопросы