2013-02-14 4 views
-3

Мне интересно, как вставить символ в каждую строку в txt-файле?Как вставить символ в каждую строку в txt-файле

, например, у меня есть текстовый файл, и там вы такие строки:

text 
text 
text 

, и я сделал бы, что линии так же, как:

$text 
$text 
$text 

Я пытаюсь определить Раствор, либо Python или Java

заранее спасибо

пакет org.kodejava.example.io;

импорт java.io. *;

public class Root { 
public static void main(String[] args) { 
     File file = new File("C:\\text.txt"); 
     StringBuilder contents = new StringBuilder(); 
     BufferedReader reader = null; 

     try { 
      reader = new BufferedReader(new FileReader(file)); 
      String text = null; 

      // repeat until all lines is read 
      while ((text = reader.readLine()) != null) { 
       contents.append(text) 
         .append(System.getProperty(
           "line.separator")); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       if (reader != null) { 
        reader.close(); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 

     // show file contents here 
     System.out.println(contents.toString()); 
    } 

}

Я нашел пример, как прочитать файл, который Митос я должен использовать для того, чтобы вставить специальный символ?

+4

прочитайте файл по строке, добавьте новый символ в строку и запишите результат в новый файл. – jtahlborn

+2

Начните с чего-то. Если у вас есть проблемы, вы можете вернуться сюда, чтобы спросить, почему, и мы поможем вам. – mgilson

+1

Согласен - если вы не можете даже указать, какой язык вы используете, ясно, что вы просто хотите, чтобы кто-то сделал это за вас. –

ответ

1

Если прочитать файл построчно с помощью BufferedReader (он предлагает метод readLine()), вы можете записать вывод в другой файл, используя PrintWriter и первый вы пишете $ символ с помощью print() и затем линии вы читаете от BufferedReader с использованием println().

Обратите внимание, что конкатенация строк с использованием оператора + в Java выполняется очень медленно.

Что-то, как это должно работать (немного проще, чем вы нашли образец):

try (BufferedReader input = new BufferedReader(new FileReader(new File("inputfile.txt"))); 
PrintWriter output = new PrintWriter(new File("outputfile.txt"))) 
{ 
    String line; 
    while (input.ready() && ((line = input.readLine()) != null)) 
    { 
    output.print("$"); 
    output.println(line); 
    } 
} 
catch (Exception ex) 
{ 
    ex.printStackTrace(); 
} 

В приведенном выше примере используется новый Java 7 autoclose feature в try блоке, чтобы закрыть потоки после завершения процесса.

+0

Привет, спасибо, почти все работает) Видите ли, я добавил код здесь. Я понял, что могу поместить строку System.out.print («s»), верно? но я не знаю, как покрыть его циклом, чтобы добавить '$' в начале каждой строки. – Leo

+1

'System.out.print()' будет выводиться на консоль. Для вывода в файл вам необходимо создать «новый PrintWriter (новый файл (« имя файла »)); Цикл может быть выполнен на BufferedReader, используя 'ready()'. Таким образом, у вас будет 'while (br.ready())' и внутри него будет читаться следующая строка, напишите '' 'в printwriter и напишите строку, которую вы только что прочитали из буферизованного читателя, в printwriter. Так что всего 3 линии. – jbx

+0

Я поставил образец того, как он может выглядеть. – jbx

1
FileWriter fstream = new FileWriter("fileName"); 
BufferedWriter fbw = new BufferedWriter(fstream); 
while ((text = reader.readLine()) != null) { 
    fbw.write("$" + text+ "\n"); 
} 

Измените время, как указано выше. Попробуйте это.

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