电话本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";
		
	}
      
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值