Для моего проекта я должен прочитать данные, которые нам даны, в файле CSV и записать их в определенном формате. Я почти сделал это, но проблема у меня в том, что моя программа не полностью читает указанное время. Отсюда моя программа просто читает все время, которое мне дают.
Я пытался преобразовать String time
в целое число, но это дает мне InputMismatchException
.
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MusicInventory {
public long toHoursPart(Duration d) {
return d.toHours() / 3600;
}
public long toMinutesPart(Duration d) {
return d.toMinutes() % 60;
}
public long toSecondsPart(Duration d) {
return d.toMillis() / 1000 % 60;
}
public static void process(File input, File output) throws FileNotFoundException {
//read file
List<String> inList = new ArrayList<>();
try(Scanner scan = new Scanner(input)) {
while(scan.hasNext()){
String line = scan.nextLine();
inList.add(line);
}
}
//process data
List<String> outList = new ArrayList<>();
for (String now : inList) {
try (Scanner scan = new Scanner(now)){
scan.useDelimiter(",");
String name = scan.next();
String album = scan.next();
String time = scan.nextLine();
String next = String.format("%s | %s | %s ", name, album, time);
outList.add(next);
}
}
//write file
try (PrintWriter pw = new PrintWriter(output)){
for (String s : outList) {
pw.println(s);
}
}
}
}
Это должно вернуть
[Улица Сезам |Best of Elmo |0:28:11]
но возвращается
[Best of Elmo |Улица Сезам |, 2: 29,1: 30,2: 09,1: 46,1: 55,2: 02,1: 42,2: 40,1: 56,1: 30,2: 03,1: 14,2: 28,2: 47]