如何删除单词/行并将其替换为txt文件(Java)中的新单词/行?

时间:2015-05-14 22:27:32

标签: java string file

例如,我们有一个.txt文件:

  

名称smth

     

2012年

     

复制1

我想用它替换它:

  

名称smth

     

2012年

     

复制0

使用java.io。*。

3 个答案:

答案 0 :(得分:0)

逐行读取原始文本文件并将它们分隔为由空格分隔的字符串标记以进行输出,然后在找到要替换的部分(作为字符串)时,将输出替换为您希望的输出。将false标志添加到filewrite对象(“filename.txt”,false)将覆盖并不附加到文件,允许您替换文件的内容。

答案 1 :(得分:0)

这是执行该操作的代码

try {

        String sCurrentLine;

        BufferedReader br = new BufferedReader(new FileReader("yourFolder/theinputfile.txt"));
                BufferedWriter bw = new BufferedWriter(new FileWriter("yourFolder/theinputfile.txt" , false));

        while ((sCurrentLine = br.readLine()) != null) {
            if(sCurrentLine.indexOf("Copies")>=0){
                 bw.write("Copies 0")
            }

            System.out.println(sCurrentLine);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            br.close()bw.close();

        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

希望有帮助

答案 2 :(得分:0)

这是执行此操作的代码。如果您有任何疑问,请与我联系。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.LinkedHashMap;
import java.util.Map;

public class Test2 {
    Map<String, String> someDataStructure = new LinkedHashMap<String, String>();
    File fileDir = new File("c:\\temp\\test.txt");

    public static void main(String[] args) {
        Test2 test = new Test2();
        try {
            test.readFileIntoADataStructure();
            test.writeFileFromADataStructure();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }

    private void readFileIntoADataStructure() throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(
                new FileInputStream(fileDir)));
        String line;
        while ((line = in.readLine()) != null) {
            if (line != null && !line.trim().isEmpty()) {
                String[] keyValue = line.split(" ");
                // Do you own index and null checks here this is just a sample
                someDataStructure.put(keyValue[0], keyValue[1]);
            }
        }
        in.close();
    }

    private void writeFileFromADataStructure() throws IOException {
        Writer out = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream(fileDir)));
        for (String key : someDataStructure.keySet()) {
            // Apply whatever business logic you want to apply here
            myBusinessMethod(key);
            out.write(key + " " + someDataStructure.get(key) + "\n");
            out.append("\r\n");
            out.append("\r\n");
        }
        out.flush();
        out.close();
    }

    private String myBusinessMethod(String data) {
        if (data.equalsIgnoreCase("Copies")) {
            someDataStructure.put(data, "0");
        }
        return data;
    }
}