[英]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.