電話本3.0 I/O流實現

</pre><pre name="code" class="java">package com.hp.dhb;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;


import java.util.ArrayList;
import java.util.Scanner;

public class Dianhuaben {
	 static ArrayList<Xinxi> ziliao1=new ArrayList<Xinxi>();
	  static Scanner input =new Scanner(System.in);

	public static void main(String[]args) throws IOException{
    	  
		huoqu();
    	  
    	  while(true){
    	  System.out.println("請選擇功能:");
    	  System.out.println("1.添加  2.刪除  3.修改   4.查看  5.全部查看  0.退出");
    	  
    	  int gongneng=input.nextInt();
    	 
    	  switch(gongneng){
    	  case(0):{
    		
  		   cunchu();
    		  System.exit(0);
    	  };break;
    	    case(1):add();break;
    	    case(2):shuchu();break;
    	    case(3):xiugai();break;
    	    case(4):chakan();break;
    	    case(5):qbck();break;
    	    default:{
    	    	 System.out.println("輸入錯誤");
    	    };break;
    	  }
    	  }
      }
	
	//獲取文件已存信息
      private static void huoqu() throws IOException {
		// TODO Auto-generated method stub
    	  File f1=new File("D:/dhb.txt");
  		if(!f1.exists()){
  			f1.createNewFile();
  		}
  		BufferedReader reader=null;
  		reader=new BufferedReader(new FileReader(f1));
  		String tempString=null;
  		int line=0;
  		 while ((tempString = reader.readLine()) != null) {  
               // 顯示行號  
  			 String[]sbuu=tempString.split(",");
  				Xinxi ziliao2=new Xinxi();
  				ziliao2.setXingming(sbuu[0]);
  				 ziliao2.setXingbie(sbuu[1]);
  				 ziliao2.setDianhua(sbuu[2]);
  				 ziliao1.add(ziliao2);
  				 System.out.println(ziliao2.toString());
               line++;
              
           }  
  		 System.out.println("共讀取"+line+"條信息");
           reader.close();
	}
      
      
      //向文件存儲信息
	private static void cunchu() throws IOException {
		// TODO Auto-generated method stub
    	  FileOutputStream fos=new FileOutputStream("D:/dhb.txt");  
 		 
		  for(int i=0; i<ziliao1.size();i++){
			 String a=ziliao1.get(i).toto();
			  
			 byte bytes[]=new byte[512];
			   bytes=a.getBytes();   //新加的.
			   int b=a.length();   //改
			  
			  fos.write(bytes,0,b);
	}
	}


        //增加
	private static void add() {
		// TODO Auto-generated method stub
		 System.out.println("請輸入姓名");
		 String xingming1=input.next();
		 System.out.println("請輸入性別");
		 String xingbie1=input.next();
		 System.out.println("請輸入電話號碼");
		 String dianhua1=input.next();
		 Xinxi ziliao=new Xinxi();
		 //ziliao.xingming=xingming1;
		 ziliao.setXingming(xingming1);
		 ziliao.setXingbie(xingbie1);
		 ziliao.setDianhua(dianhua1);
		 
		
		ziliao1.add(ziliao);
		 System.out.println(ziliao.toString());
	}

	//刪除
	private static void shuchu() {
		// TODO Auto-generated method stub
		System.out.println("請輸入姓名");
		 String xingming2=input.next();
		int a=chaxun(xingming2);
		if(a==-1){
			System.out.println("查無此人");
		}else{
		ziliao1.remove(a);}
	}
	
	
     //查詢
	private static int chaxun(String xingming2) {
		// TODO Auto-generated method stub
		int a = 0;
		for(int i=0;i<ziliao1.size();i++){
			if(ziliao1.get(i).getXingming().equals(xingming2)){
				 a = i;
				break;
			}
			if(i==ziliao1.size()-1){
				 a = -1;
				break;
			}
		}
		
		return a;
	}

	private static void xiugai() {
		// TODO Auto-generated method stub
		System.out.println("請輸入姓名");
		 String xingming2=input.next();
		int a=chaxun(xingming2);
		if(a==-1){
			System.out.println("查無此人");
		}else{ziliao1.remove(a);
		
		 System.out.println("請輸入姓名");
		 String xingming1=input.next();
		 System.out.println("請輸入性別");
		 String xingbie1=input.next();
		 System.out.println("請輸入電話號碼");
		 String dianhua1=input.next();
		 Xinxi ziliao=new Xinxi();
		 //ziliao.xingming=xingming1;
		 ziliao.setXingming(xingming1);
		 ziliao.setXingbie(xingbie1);
		 ziliao.setDianhua(dianhua1);
		
		
		ziliao1.add(ziliao);
		 System.out.println(ziliao.toString());
		
		}
	}

	private static void chakan() {
		// TODO Auto-generated method stub
		System.out.println("請輸入姓名");
		 String xingming2=input.next();
		int a=chaxun(xingming2);
		if(a==-1){
			System.out.println("查無此人");
		}else{
			Xinxi ziliao=new Xinxi();
		    ziliao=ziliao1.get(a);
		    System.out.println(ziliao.toString());
		    
		}
	}

	private static void qbck() {
		// TODO Auto-generated method stub
		for(int i=0;i<ziliao1.size();i++){
			Xinxi ziliao=new Xinxi();
		    ziliao=ziliao1.get(i);
		    System.out.println(ziliao.toString());	
		}
	}
}

以上爲主程序。



package com.hp.dhb;

public class Xinxi {
	 private String xingming;
      private String xingbie;
      private String dianhua;
	public String getXingming() {
		return xingming;
	}
	public void setXingming(String xingming) {
		this.xingming = xingming;
	}
	public String getXingbie() {
		return xingbie;
	}
	public void setXingbie(String xingbie) {
		this.xingbie = xingbie;
	}
	public String getDianhua() {
		return dianhua;
	}
	public void setDianhua(String dianhua) {
		this.dianhua = dianhua;
	}
	@Override
	public String toString() {
		return "Xinxi [姓名=" + xingming + ", 性別=" + xingbie
				+ ", 電話=" + dianhua + "]";
	}
	public String toto(){
		return xingming+","+xingbie+","+dianhua+"\r\n";
		
	}
      
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章