Мой входной файл выглядит следующим образом:
p edge 200 527
e 1 2
e 1 3
e 1 4
e 1 5
Выходной файл должен быть:
p edge 200 527
e 0 1
e 0 2
e 0 3
e 0 4
Помимо первой строки, я должен уменьшить каждое целое число на 1.
Что я сделал:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class Example {
public static String pathToTheGraphFile = "C:\\Users\\Desktop\\inputFile.txt";
public static void main( String[] args ) throws IOException {
Path path = Paths.get(pathToTheGraphFile );
try (Stream<String> stream = Files.lines(path);FileWriter fileWriter = new FileWriter("C:\\Users\\Desktop\\outputFile.txt");) {
stream.skip(1)
.map(line-> line.split(" "))
.map(line -> {
int a = Integer.parseInt(line[1])-1;
int b = Integer.parseInt(line[2])-1;
return new String(line[0]+" "+a+" "+b);
})
.forEachOrdered(l-> {
try {
fileWriter.write(l);
} catch (IOException e) {
e.printStackTrace();
}
});
}
}
}
Как я могу прочитать первую строку по отдельности?Потому что мне нужно хранить эту информацию в строке 1. Для этого я пропустил первую строку, но я не должен этого делать.
Как видите, даже если программа работает хорошо, читаемость, на мой взгляд, хуже,Есть ли здесь какие-либо предложения?