包裹?測試;
進口?Java . io . buffered reader;
進口?Java . io . buffered writer;
進口?Java . io . file;
進口?Java . io . filereader;
進口?Java . io . filewriter;
進口?Java . io . io exception;
進口?Java . text . number format;
進口?Java . util . ArrayList;
進口?Java . util . list;
進口?Java . util . scanner;
/**
*?文件保存格式為
*?學號、姓名、班級、java分數
*?學號、姓名、班級、java分數
*?學號、姓名、班級、java分數
*?學號、姓名、班級、java分數
*?學號、姓名、班級、java分數
*?總分
*?@作者?管理人員
*
*/
公共?班級?誌道?{
公共?靜電?作廢?main(String[]?args)?{
文件?文件?=?新的?file(" javascore . text ");
列表& ltstring[]& gt;?infos?=?null
如果?(file.exists())?{
System.out.println("現有信息:");
infos?=?getInfos(文件);
system . out . println(print infos(infos));
system . exit(0);
}?不然呢?{
試試?{
file . create new file();
}?接住?(IOException?e)?{
//?托多?自動生成?接住?街區
//e . printstacktrace();
System.out.println("無法創建文件"?+?e . getmessage());
system . exit(1);
}
}
infos?=?新的?ArrayList & ltstring[]& gt;();
掃描儀?掃描?=?新的?掃描儀(system . in);
字符串?信息?=?null
String[]?strs?=?null
int?數數?=?0;
數字格式?nf?=?number format . get number instance();
nf . setminimumcfractiondigits(2);?
nf . setmaximumfractiondigits(2);
浮動?總分?=?0;
什麽時候?(算嗎?& lt?5)?{
System.out.println("請輸入數字?"?+?(算嗎?+?1)?+?“學生基本信息[學號,姓名,班級,java成績,用英文逗號分隔]:);
信息?=?scan.next()。trim();
//判斷結果的合法性
strs?=?info.split(",");
如果?(strs.length?!=?4)?{
System.out.println("輸入信息不正確,請重新輸入!");
繼續;
}
試試?{
如果?(Float.valueOf(strs[3])?& gt?100)?{
System.out.println("分數不能超過100分!");
繼續;
}
}?接住?(NumberFormatException?e)?{
//?TODO:?手柄?例外
System.out.println("年級輸入錯誤!"?+?e . getmessage());
繼續;
}
總分?+=?float . value of(strs[3]);
infos.add
count++;
}
infos.add(新?String[]{nf.format(totalScore),?nf.format(totalScore?/?5)});
system . out . println(print infos(infos));
saveInfos(信息);
System.out.println("保存完成!");
}
公共?靜電?字符串?print infos(List & lt;string[]& gt;?infos)?{
字符串?str?=?"";
為了什麽?(String[]?ss:infos)?{
如果?(ss.length?==?2)?{
str?+=?"總分:"?+?ss[0]?+?" \n平均分數:"?+?ss[1]?+?”\ n”;
繼續;
}
str?+=?“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n”?+?"學號:"?+?ss[0]?+?" \n "
+?"名稱:"+?ss[1]?+?" \n "
+?"類:"?+?ss[2]?+?" \n "
+?" java評分:"?+?ss[3]?+?”\ n \ n \ n”;
}
回歸?str
}
公共?靜電?作廢?save infos(List & lt;string[]& gt;?信息){
FileWriter?作家?=?null
BufferedWriter?buffWriter?=?null
試試?{
作家?=?新的?FileWriter(新?file(" javascore . text "));
buffWriter?=?新的?BufferedWriter(作家);
字符串?str?=?null
為了什麽?(String[]?ss:infos)?{
str?=?ss[0]?+?","?+?ss[1];
如果?(ss.length?& gt?2)?{
str?+=?","?+?ss[2]?+?","?+?ss[3];
}
buff writer . write(str);
buff writer . newline();
}
buff writer . flush();
}?接住?(例外?e)?{
//?TODO:?手柄?例外
System.out.println("將信息保存到文件時出錯:"?+?e . getmessage());
system . exit(1);
}?終於?{
如果?(作家?!=?null)?{
試試?{
writer . close();
}?接住?(IOException?e)?{
//?托多?自動生成?接住?街區
e . printstacktrace();
}
}
如果?(buffWriter?!=?null)?{
試試?{
buff writer . close();
}?接住?(IOException?e)?{
//?托多?自動生成?接住?街區
e . printstacktrace();
}
}
}
}
公共?靜電?列表& ltstring[]& gt;?getInfos(文件?f)?{
FileReader?讀者?=?null
BufferedReader?buffReader?=?null
列表& ltstring[]& gt;?infos?=?新的?ArrayList & ltstring[]& gt;();
試試?{
讀者?=?新的?FileReader(f);
buffReader?=?新的?BufferedReader(閱讀器);
字符串?str?=?null
什麽時候?((str?=?buffReader.readLine())?!=?null)?{
infos.add(str.split(",");
}
}?接住?(例外?e)?{
System.out.println("從文件中讀取信息時出錯..."?+?e . getmessage());
system . exit(1);
//e . printstacktrace();
}?終於?{
如果?(讀者?!=?null)?{
試試?{
reader . close();
}?接住?(IOException?e)?{
//?托多?自動生成?接住?街區
e . printstacktrace();
}
}
如果?(buffReader?!=?null)?{
試試?{
buff reader . close();
}?接住?(IOException?e)?{
//?托多?自動生成?接住?街區
e . printstacktrace();
}
}
}
回歸?infos
}
}