簡體   English   中英

如何刪除txt文件(Java)中的單詞/行並將其替換為新單詞/行?

[英]How can i remove a word/line and replace it with a new one in a txt file (Java)?

例如,我們有一個.txt文件:

名稱

2012年

份數1

我想替換為:

名稱

2012年

份數0

使用java.io. *。

逐行閱讀原始文本文件,並將其分成由空格分隔的字符串標記以進行輸出,然后在找到要替換的部分(作為字符串)時,將輸出替換為所需的內容。 將false標志添加到filewrite對象(“ filename.txt”,false)將被覆蓋並且不會追加到文件中,從而允許您替換文件的內容。

這是這樣做的代碼

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

希望有幫助

這是執行此操作的代碼。 如果您有任何問題,請告訴我。

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;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM