如何在文本文件的每一行中插入一个字符

时间:2013-02-14 15:27:53

标签: java python parsing

我想知道如何在txt文件的每一行中插入一个字符?

例如我有一个txt文件,并且有这样的行:

text
text
text

我会将这些行与:

相同
$text
$text
$text

我尝试定义python或java

的解决方案

提前致谢

package org.kodejava.example.io;

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

}

我找到了一个如何读取文件的示例,我应该使用哪种方法来插入特定的符号?

2 个答案:

答案 0 :(得分:1)

如果您使用BufferedReader逐行读取文件(它提供方法readLine()),则可以使用PrintWriter将输出写入另一个文件,然后首先编写使用print()$字符,然后使用println()BufferedReader读取的行。

请注意,在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();
} 

上面的示例使用try块中的新Java 7 autoclose feature在流程完成后关闭流。

答案 1 :(得分:1)

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

如上所述,在循环时改变你。试试这个。