2015-06-18 5 views
0

Я ищу способ записи в текстовый файл путем поиска определенной строки и записи ее. Я имею в виду, что я хочу разделить текстовый файл на 2 раздела, чтобы я мог писать в каждый раздел с отдельными java-программами. Моя причина в том, что я запускаю тесты с двумя различными 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 раздела в один и тот же текстовый файл и иметь возможность добавлять к концу каждого из них независимо. Возможно ли это? И если да, то как мне это сделать?

+0

Звучит как проблема с xy. Что на самом деле записывается на диск? – Andreas

ответ

-1

Пока 2 программы Java не записывают в файл в то же время, это один из способов, которым вы можете записать 2 программы в разные части файла.

Каждая программа создаст экземпляр этого класса и вызовет соответствующие методы для программы (либо 1-й программы, либо 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; 
    } 

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