java学习第21天--IO4--综合练习题集锦2

package com.czz.text03;

 

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Scanner;

 

/*

扫描二维码关注公众号,回复: 190084 查看本文章

 * 使用文件保存多个学生信息,在程序中提供查询,添加,删除的功能

 * 分析:

      1.info.txt文件保存学生信息

      2.main方法中使用while循环不断的接收用户的操作

      3.查询,添加,删除分别封装成方法

 */

publicclassStudentDemo {

   static Scanner sc = new Scanner(System.in);

 

   publicstaticvoid main(String[] args) throws Exception {

 

      while (true) {

         System.out.println();

         System.out.println("请根据下面选项输入您想要的操作");

         System.out.println("1.查询 2.删除 3.添加 4.显示 5.退出");

         System.out.println("请输入您的选项: ");

         intitem = sc.nextInt();

 

         switch (item) {

         case 1:

            search();

            break;

         case 2:

            System.out.println("删除");

            delete();

            break;

         case 3:

            add();

            System.out.println("添加");

            break;

         case 4:

            System.out.println("显示");

            showAll();

            break;

         case 5:

            System.out.println("感谢您的使用");

            System.exit(-1);

            break;

         }

      }

 

   }

 

   // 添加元素

   privatestaticvoid add() throws Exception {

      System.out.println("输入要添加的学号:");

      Stringnum= sc.next();

      if (!isExists(num)) {

         System.out.println("输入姓名:");

         Stringname= sc.next();

         System.out.println("输入成绩:");

         Stringscore= sc.next();

 

         // 输出流

         BufferedWriterbw = new BufferedWriter(new FileWriter("info.txt",true));

         bw.write(num + "," + name + "," + score);

         bw.newLine();

         bw.flush();

         bw.close();

         System.out.println("添加成功");

      }else{

         System.out.println("你输入的学号已经存在.");

      }

 

   }

 

   // 删除

   privatestaticvoid delete() throws Exception, IOException,Exception {

      System.out.println("输入将要删除掉的学号: ");

      Stringnum= sc.next();

 

      if (isExists(num)) {

         BufferedReaderbr = new BufferedReader(new FileReader("info.txt"));

         ArrayList<String>list= newArrayList<>();

 

         Stringinfo= null;

         while ((info = br.readLine()) != null) {

            if (!info.startsWith(num)) {

                list.add(info);

            }

         }

         br.close();

 

         // 将剩余的信息写回原文件

         BufferedWriterbw = new BufferedWriter(new FileWriter("info.txt"));

         for (String infos : list) {

            bw.write(infos);

            bw.newLine();

            bw.flush();

         }

         bw.close();

         System.out.println("删除成功");

      }else{

         System.out.println("你输入的学号不存在");

      }

   }

 

   // 显示所有信息

   privatestaticvoid showAll() throws Exception {

      BufferedReaderbr= newBufferedReader(newFileReader("info.txt"));

 

      System.out.println("学号\t姓名\t成绩");

      Stringline= null;

      while ((line = br.readLine()) != null) {

         String[]split= line.split(",");

         System.out.println(split[0] + "\t" + split[1] + "\t" + split[2]);

      }

   }

 

   // 查找功能

   privatestaticvoid search() throws Exception {

      System.out.println("请输入要查询的学号:");

      Stringnum= sc.next();

 

      // 判断学号是否存在

      if (isExists(num)) {

         BufferedReaderbr= newBufferedReader(newFileReader("info.txt"));

         Stringline= null;

         while ((line = br.readLine()) != null) {

            if (line.startsWith(num)) {

                System.out.println("学号\t姓名\t成绩");

 

                // 切割

                String[]split= line.split(",");

                System.out.println(split[0] + "\t" + split[1] + "\t" + split[2]);

            }

         }

      }else{

         System.out.println("您输入的学号不存在");

      }

   }

 

   // 判断学号是否存在

   privatestaticboolean isExists(String num) throws Exception {

      BufferedReaderbr= newBufferedReader(newFileReader("info.txt"));

      ArrayList<String>list= newArrayList<>();

 

      Stringline= null;

      while ((line = br.readLine()) != null) {

         list.add(line);

      }

 

      // 遍历集合

      for (String info : list) {

         if (info.startsWith(num)) {

            returntrue;

         }

      }

      returnfalse;

   }

 

}

猜你喜欢

转载自blog.csdn.net/czz1141979570/article/details/80149565