2014-01-11 3 views
1

ПРИМЕЧАНИЕ: Благодаря user2602219 и Andrew Thompson Я решил свою проблему. Хотелось бы, чтобы я правильно одобрил оба ответа и проголосовал.Write JTextArea Текст как строка

Я много искал. Я что-то нашел, но они не подходят для меня.

Все, что я хочу написать

Hello 
World 

, как видно. Но в моем txt-файле он показывает HelloWorld

try{ 
     JTextArea area = new JTextArea(); 
     String path = folder+"/"+name+".txt"; 
     BufferedWriter output = new BufferedWriter(new FileWriter(path)); 
     area.write(output); 
     output.close(); 
    } 
    catch(IOException ex){} 

Код выше отлично работает. Однако я должен что-то сделать, прежде чем писать.

У меня есть метод шифрования (называемый enc). Он берет строку и заменяет буквы с другими буквами.

Например:

String text = "ABC"; 
String enc_text = enc(text); 

// enc_text теперь "ZXW";

Но вот что. JTextArea.write ищет «Writer», но мне нужно написать строку, потому что мой encrypter возвращает строку.

Short рассказ короткий. Как сделать

Hello 
World 

к этому

Gteeu 
Wuazx 
+0

Вы ищете метод 'setText'? –

+0

Вам нужно зашифровать строку? –

+0

не ребята. когда я пишу в файл как строку, он удаляет новые строки.когда я пишу с помощью JTextArea.write, я не могу использовать свой метод шифрования. Все, что мне нужно, это использовать метод JTextArea.write, но принимает аргумент как строку – Degauser

ответ

1
  1. Возьмите незашифрованую строку из первой текстовой области.
  2. Зашифровать его.
  3. Поместите зашифрованную строку во вторую текстовую область, которая не будет сразу видна конечному пользователю.
  4. Используйте метод JTextCompnent.write(..) в зашифрованной текстовой области.
+0

Я хочу поблагодарить вас за помощь в моем вопросе. Я решил это :) – Degauser

0

Попробуйте использовать это:

String text = "Hello" + "\nWorld"; 

\ п новая строка.

+0

Текст получен из JTextArea, и пользователь что-то пишет. Спасибо за ваш ответ, но это не может мне помочь. Но если вы можете сказать мне, как заменить всю новую строку JTextArea, сгенерированную пользователем, \ n, она решит проблему. – Degauser

0

static void writeStringToFile (Файл файла, Строковые данные) , который позволяет вам писать текст в файл одним вызовом метода.

или использовать FileUtils.writeStringToFile (новый файл («test.txt»), «Hello File»);

+0

Мне нужно записать его в файл, так как вы можете увидеть часть моего кода – Degauser

+0

Итак, вы спрашиваете, как писать текст в файл? Я думал, что вопрос связан с 'JTextArea'. Пожалуйста, уточните, что вы просите! –

+0

Возможно, у вас не возник вопрос? Зачем мне нужны команды IO, если я не хочу писать текстовый файл? Что такое моя переменная «путь»? Зачем использовать BufferedWriter? Этот парень явно хочет писать в текстовый файл. – Degauser

0

Пробовал ли вы читать каждую строку отдельно, а затем записывать ее в нужный файл txt? Таким образом, вы можете использовать «\ n» для записи на новой строке. Еще одно решение, которое пришло мне в голову, заключается в следующем: String s = ""; s = s.format (что-то + "\ n");

Таким образом, вы бы линии в самой строке :)

+0

№. на самом деле это может быть то, что мне нужно. но, как я уже сказал, мне нужно зашифровать текст. Поэтому в основном, я должен получить текст JTextArea для строки (она должна быть только одной строкой) и закодировать ее. А затем запишите зашифрованный текст в txt-файл. – Degauser

+0

Это может быть странное решение, но подумали ли вы о добавлении зашифрованного символа в файл сразу после его добавления в JTextArea? И вы можете поместить KeyListener для добавления «\ n» всякий раз, когда пользователь использует ключ ввода/возврата? – HishamGarout

+0

Да, я подумал об этом. При нажатии введите JTextArea, напишите (например) #. А затем замените все # символами на \ n. Это может помешать пользователю, но если я не смогу найти другой выход, я должен это сделать. Можно ли добавить новую строку в JTextArea и символ, нажав enter? Пользователь должен видеть новую строку, мне нужно добавить символ. Вы знаете какой-либо способ сделать это? – Degauser

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