[英]Sorting dates as Strings Java
我正在尝试创建一种方法,该方法将接受用户输入的任务和截止日期并按截止日期对其进行排序。 我已经为任务编写了代码,并且可以编译,但是当我尝试排序时,似乎删除了所有内容。 我要覆盖原始文件吗? 我如何更正此问题以将其添加到同一文件而不删除?
public class DueDate implements Comparable<DueDate>{
public String addedTask = "";
public String dueDate = "";
public DueDate(String addedTask, String dueDate){
this.addedTask = addedTask;
this.dueDate = dueDate;
}
public String toString(){
return addedTask+"\t"+dueDate+"\t";
}
@Override
public int compareTo(DueDate o) {
return this.dueDate.compareTo(o.dueDate);
}
}
public class Main {
public static String fileName = "/Users/eri/Desktop/tasklistjava/src/javatask.txt";
public static void main(String[] args) throws IOException {
int menuItem = -1;
while(menuItem != 0){
menuItem = menu();
switch (menuItem){
case 1:
showTaskList();
break;
case 2:
addTask();
break;
case 3:
sortList();
case 4:
deleteTasks();
break;
case 0:
break;
default:
System.out.println("Invalid Input");
}
}
}
static void sortList() throws IOException {
System.out.println("\nSorted List\n");
try {
BufferedReader br = new BufferedReader(new FileReader(fileName));
BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
ArrayList<DueDate> tasks = new ArrayList<DueDate>();
String line = "";
while((line = br.readLine()) != null) {
String[] values = line.split("-");
if(values.length == 2) {
String addedTask = values[0];
String dueDate = values[1];
DueDate d = new DueDate(addedTask, dueDate);
tasks.add(d);
}
}
Collections.sort(tasks);
for(int i = 0; i < tasks.size(); i++){
DueDate date = tasks.get(i);
String lineText = date.toString();
bw.write(lineText);
bw.newLine();
}
br.close();
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
通常,当您想对文件中的记录进行排序时,首先需要将内容取出并存储在arraylist中,然后将其放在arraylist中进行排序。 之后,您删除旧文件,并将排序后的数据写入新文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.