java 中用字符流讀取和寫入文件,涉及到根據給定正則表達式的匹配拆分此字符串(split)


public static void main(String[] args) {
getChaXun();
}

/**
* @param year 輸入的年
* @param c Counyry對象
* @return 日志中追加的后綴
*/
public static String Panduan(String year,Country c) {
String string=null;
if (year.equals("1")) {
string="進行了“查詢年份------"+c.getNianfen();
}else if (year.equals("2")) {
string="進行了“查詢舉辦地------"+c.getJubanji();
}else if (year.equals("3")) {
string="進行了“查詢冠軍國------"+c.getHuojiangguojia();
}
return string;
}

/**
* 開始查詢
*/
public static void getChaXun() {
Scanner scanner=new Scanner(System.in);
System.out.println("您是要:1.查詢年份 2.查詢舉辦地 3. 查詢冠軍國 0.退出");
System.out.println("請輸入查詢方式:");
String year1=scanner.next();
BufferedReader reader=null;
BufferedWriter writ=null;
StringBuffer sb=null;
Country country=null;
try {
reader=new BufferedReader(new FileReader("message.txt"));
writ=new BufferedWriter(new FileWriter("查詢記錄.log",true));
String read = null;
String str=" 年份 舉辦地 冠軍國 查詢時間";
writ.write(str+"\n");
writ.write("---------------------------------------------------------------------------------------------------------------------------------------"+"\n");
if (year1.compareTo("0")!=0) {
System.out.println("請輸入年份、舉辦地、或者是冠軍國:");
String year=scanner.next();
while ((read=reader.readLine())!=null) {
String[] split = read.split("\\|");
// System.out.println(split.length);
if (read.indexOf("|")>0) {
country=new Country( split[0], split[1], split[2]);
switch (year1) {
case "1":
if (year.equals(split[0])) {
System.out.println("舉辦地:"+country.getJubanji()+";獲獎國家:"+country.getHuojiangguojia());
String panduan = Panduan(year1, country);
String string=country.getNianfen()+" "+country.getJubanji()+" "
+country.getHuojiangguojia()+" "+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+
panduan+
"\n";
writ.write(string);

//list.add(country);
}
break;
case "2":
if (year.equals(split[1])) {
System.out.println(country);
String panduan = Panduan(year1, country);
String string=country.getNianfen()+" "+country.getJubanji()+" "
+country.getHuojiangguojia()+" "+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+
panduan+
"\n";
writ.write(string);

//list.add(country);
}
break;
case "3":
if (year.equals(split[2])) {
System.out.println(country);
String panduan = Panduan(year1, country);
String string=country.getNianfen()+" "+country.getJubanji()+" "
+country.getHuojiangguojia()+" "+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+
panduan+
"\n";
writ.write(string);


//list.add(country);
}
break;

default:
break;
}

}else{
System.out.println("謝謝查詢");
}

}

} else {
System.out.println("已退出");
}

writ.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (null!=reader) {
scanner.close();
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}


public class Country {
/*年份*/
protected String nianfen;
/*舉辦地*/
protected String jubanji;
/*獲獎國家*/
protected String huojiangguojia;



public Country(String nianfen, String jubanji, String huojiangguojia) {
super();
this.nianfen = nianfen;
this.jubanji = jubanji;
this.huojiangguojia = huojiangguojia;
}
public String getNianfen() {
return nianfen;
}
public void setNianfen(String nianfen) {
this.nianfen = nianfen;
}
public String getJubanji() {
return jubanji;
}
public void setJubanji(String jubanji) {
this.jubanji = jubanji;
}
public String getHuojiangguojia() {
return huojiangguojia;
}
public void setHuojiangguojia(String huojiangguojia) {
this.huojiangguojia = huojiangguojia;
}
@Override
public String toString() {
return " " + nianfen + " " +jubanji + " " + huojiangguojia +" "+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM