我想用Java把同一个文件读几遍
当文件被修改时,我想在同一执行中多次读取文件。我做了这些代码,但是当我第二次读文件时,它说没有更多的行了 该文件是一个.csv文件,如下所示:我想用Java把同一个文件读几遍,java,buffer,bufferedreader,filereader,Java,Buffer,Bufferedreader,Filereader,当文件被修改时,我想在同一执行中多次读取文件。我做了这些代码,但是当我第二次读文件时,它说没有更多的行了 该文件是一个.csv文件,如下所示: "v1";"v2";"v3";"v4";"v5" "33455";"15.06.2018 20:48:44";555;555;43 "234455";"15.06.2018 20:49:10";555;555;42 代码: 同一个文件有多个文件?你什么意思?我搞错了,我编辑了它。我想说的是,在同一次执行中多次读取同一文件。您确定在第二次运行之前更改了文
"v1";"v2";"v3";"v4";"v5"
"33455";"15.06.2018 20:48:44";555;555;43
"234455";"15.06.2018 20:49:10";555;555;42
代码:
同一个文件有多个文件?你什么意思?我搞错了,我编辑了它。我想说的是,在同一次执行中多次读取同一文件。您确定在第二次运行之前更改了文件并保存了更改吗?是否输入if(!lastFileModifiedData.equals(fileModifiedData))条件?是!修改并保存文件时,我输入if(!lastFileModifiedData.equals(fileModifiedData))条件,然后输入readCSVFile,其中调用scan.hasNextLine()时表示没有行
public static void main(String[] args) throws ParseException, FileNotFoundException, IOException
{
String csvFile = "file.csv";
readCSVFile(csvFile);
Date lastFileModifiedData = getFileLastModifiedData(csvFile);
while(true)
{
Date fileModifiedData = getFileLastModifiedData(csvFile);
if (!lastFileModifiedData.equals(fileModifiedData))
{
readCSVFile(csvFile);
lastFileModifiedData=fileModifiedData;
}
}
}
public static void readCSVFile(String csvFile) throws ParseException, FileNotFoundException, IOException
{
String line;
String cvsSplitBy = ";";
FileReader fr = new FileReader(csvFile);
try (Scanner scan = new Scanner(fr)) {
if (scan.hasNextLine())line = scan.nextLine();
while (scan.hasNextLine())
{
line = scan.nextLine();
String[] details = line.split(cvsSplitBy);
details[0] = details[0].replace("\"","");
details[1] = details[1].replace("\"","");
System.out.println("VarName=" + details[0] + " , TimeString=" + details[1] + " , VarValue=" + details[2] + " , Validity=" + details[3] + " , Time_ms=" + details[4]);;
}
}
fr.close();
}