我有一个ID号和日期的文本文件,格式为:
ID Date
1 14/03/2011
2 06/03/2013
3 25/02/2013
4 28/01/2013
5 13/07/2011
6 13/03/2011
7 01/10/2012
8 09/10/2012
我需要读取这个txt文件,并将每个日期存储在字典中,如hashmap或格式的东西。此外,如果日期是DATE
数据类型而不是字符串,则更可取。
我试图自己做,但我是JAVA的初学者,我无法完成它。
在此先感谢您的任何帮助
这是我迄今为止所尝试过的。我没有使用字典,我试图将日期放在ArrayList中,出于某种原因,它只读取文件中的每个备用行,因此缺少一半的日期。
static Date[] list = new Date[59400];
public static void main(String[] args) {
try {
File file = new File("dates.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String readLine = "";
int i =0;
while ((readLine = bufferedReader.readLine()) != null) {
String s = bufferedReader.readLine();
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(s);
System.out.println(s+","+i);
i++;
}
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
....出于某种原因,它只读取文件中的每个备用行,因此缺少一半的日期。
从代码中查看以下两行:
while ((readLine = bufferedReader.readLine()) != null) {
String s = bufferedReader.readLine();
首先将一行文本读入readLine
。
第二行将下一行读入s
。
您从未使用过readLine
中的备用行。
我是否可以建议您花时间阅读本文:
答案 1 :(得分:0)
您可以尝试以下功能。
public static void parseFile() throws IOException, ParseException {
BufferedReader bufferedReader = new BufferedReader(new FileReader(new File("inputFileName.txt")));
Map<Integer, Date> integerDateMap = new HashMap<>(); // Map to put data
SimpleDateFormat sdfmt2= new SimpleDateFormat("dd/MM/yyyy"); // date format
String line = null;
line = bufferedReader.readLine(); // neglect first line
while((line = bufferedReader.readLine())!= null){
String[] split = line.split(" ");
integerDateMap.put(Integer.parseInt(split[0]),sdfmt2.parse(split[1]));
}
System.out.println(integerDateMap); // print to check
}