java - 我想用 Java 多次读取同一个文件
问题描述
修改文件时,我想在同一执行中多次读取文件。我做了这些代码,但是当我第二次读取文件时,它说没有更多的行。
该文件是一个像这样的 .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
代码:
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();
}
解决方案
推荐阅读
- c# - 是否可以在 datagridview 中放置/绑定字典并使其可编辑?
- c++ - 使用 cout 显示后 double 值发生变化
- php - PHP数组合并爆炸
- vba - 访问 vba 包装类处理事件
- javascript - 当我们离开页面时,如何更改我们为输入设置的数据的值?
- powershell - MD5 哈希所有文件,然后与原始 csv 比较
- c - 在 C 中使用 struct 和 for 循环创建树
- python - Azure Functions 部署失败并使用 Torch
- java - java.lang.OutOfMemoryError:无法创建新的本地线程
- php - Codeigniter 包括