Я анализирую текстовый файл и выполняю некоторые задачи редактирования.Я застрял при изменении многострочной строки в одну строку.
Рабочий процесс: 1) объединить несколько строк в одну строку 2) извлечь определенные строки, которые содержат некоторые символы или запуски *
уже пробовал некоторыеметоды, но без желаемых результатов.
цель состоит в том, чтобы иметь эту строку:
Jrn.Directive "WindowSize" , "[A.rvt]", "Floor Plan: Level 1" , 1912, 849
на основе
Jrn.Directive "WindowSize" _
, "[A.rvt]", "Floor Plan: Level 1" _
, 1912, 849
пробовал:
line.lines().collect(Collectors.joining("_"+"[\n]"));
или
line.replaceAll(" _\n" +
" ,");
Ценится за любые рекомендации Обновление:
Рабочий процесс:
текст содержит следующий текст (это небольшая часть всего текстового файла) - Я не смог вставить его как код, пожалуйста, смотрите скриншот
Jrn. Директива "WindowSize" _, "[A.rvt]", "План этажа: Уровень 1" _, 1912, 849 '0: <.Marshalling '0: <... CompactCaching = 1 (Enabled)' 0: <.ThreadPool '0: <... ActivePoolSize = 51' 0: <... ConfiguredPoolSize = automatic '0: <...ParallelCores = 8 '0: <... RequestedPoolSize = automatic' 0: <.Tuning '0: <... ElemTable = 1 (последовательный, кроме многопоточных)' 0: <BC: 0,0,0 Jrn.Directive "WindowSize "_," [A.rvt] "," План этажа: Уровень 1 "_, 1912, 84 </p>
Пожалуйста, смотрите скриншот https://i.ibb.co/0cRrwcR/2019-02-03-1947.png
Поскольку я буду извлекать строки, которые начинаются с Jrn.D и т. Д. Мне нужно присоединиться к этому и получить
Jrn.Directive "WindowSize", "[A.rvt]"," План этажа: Уровень 1 ", 1912, 849
Я думаю, что сначала необходимо определить, какие строки необходимо объединить, затем я могу извлечь строки, которые содержат интересную информацию, например, напримерони начинаются с Jrn.D.
Код, который я использую, чтобы найти конкретные строки
import java.io.*;
import java.util.stream.Collectors;
public class ReadFromFile {
public static void main(String [] args) {
// The name of the file to open.
String fileName = "test.txt";
// This will reference one line at a time
String line = null;
try {
// FileReader reads text files in the default encoding.
FileReader fileReader =
new FileReader(fileName);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader =
new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
// Im defining which lines are important for me but firstly I
//need have them in one line especially when looking for Jrn
if (line.startsWith("Jrn")||
line.contains("started recording journal file")||
line.contains("' Build:")|| line.contains("Dim Jrn"))
System.out.println(line);
}
// Always close files.
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println(
"Unable to open file '" +
fileName + "'");
}
catch(IOException ex) {
System.out.println(
"Error reading file '"
+ fileName + "'");
// Or we could just do this:
// ex.printStackTrace();
}
}
}