写入超过特定字符串的文本文件

时间:2015-06-18 21:54:55

标签: java file-io

我正在寻找一种通过搜索特定字符串并写过文本来写入文本文件的方法。我的意思是我想将一个文本文件分成两个部分,这样我就可以用不同的java程序写入每个部分。我之所以这样做是因为我正在使用2个不同的java程序运行测试,并将结果存储在2个文本文件中,但是我想让它们在不同的部分写入同一个地方。这是我目前用来编写的代码,但我知道这可能都需要改变才能做我想做的事。

try {
    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    String content = dateFormat.format(cal.getTime()) + " Test took: " + Test3 + " seconds.";

    File file = new File("mypath\\Test.txt");

    if (!file.exists()) {
        file.createNewFile();
    }

    FileWriter fw = new FileWriter("mypath\\Test.txt",true);
    BufferedWriter bw = new BufferedWriter(fw);
    fw.write("\r\n");
    bw.write(content);
    fw.write("\r\n");
    bw.close();

    System.out.println("Done");

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

它目前存储每个测试的结果,用1行分隔。我希望做的是将2个部分放在同一个文本文件中,并且能够独立地添加到每个部分的末尾。这甚至可能吗?如果是这样,我该怎么做呢?

1 个答案:

答案 0 :(得分:-1)

只要2个Java程序没有同时写入文件 ,这就是让2个程序写入文件不同部分的一种方法。

每个程序都会创建该类的实例,并为程序调用适当的方法(第一个程序或第二个程序)。

package com.ggl.testing;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class TwoPartFile {

    private String partOneHeader;

    private List<String> partOne;

    private String partTwoHeader;

    private List<String> partTwo;

    public TwoPartFile(String partOneHeader, String partTwoHeader) {
        this.partOneHeader = partOneHeader;
        this.partOne = new ArrayList<>();
        this.partTwoHeader = partTwoHeader;
        this.partTwo = new ArrayList<>();
    }

    public TwoPartFile(File file, String partOneHeader, String partTwoHeader) {
        readFile(file, partOneHeader, partTwoHeader);
    }

    public void readFile(File file, String partOneHeader, String partTwoHeader) {
        // TODO Write code to read file and separate the components.
    }

    public void writeFile(File file) {
        // TODO Write code to write file from the components
    }

    public List<String> getPartOne() {
        return partOne;
    }

    public void setPartOne(List<String> partOne) {
        this.partOne = partOne;
    }

    public List<String> getPartTwo() {
        return partTwo;
    }

    public void setPartTwo(List<String> partTwo) {
        this.partTwo = partTwo;
    }

    public String getPartOneHeader() {
        return partOneHeader;
    }

    public String getPartTwoHeader() {
        return partTwoHeader;
    }

}