一、需求

编写一个Java源程序,其中包含:

编写一个包含主方法main的公共类(访问权限为public的类),主方法main中完成的任务是:

(1)从键盘上输入两个文件的路径名及其文件名。

(2)从键盘上输入若干学生的信息(姓名,数学成绩,计算机成绩,各项之间用空格隔开),以finish结束,将这些学生的信息写入第一个文件。

(3)将第一个文件作为输入流的源,找出姓“张”的学生,将他们的信息写入第二个文件。

提示:将输入的每一行学生的信息作为一个字符串来处理。


二、使用类

1、File类

  • 构造方法

2、Scanner类

  • String nextLine()
    读入一行数据(可接收回车、空格)

  • String next()
    查找并返回来自此扫描器的下一个完整标记。(不可接收回车、空格)

3、FileOutputStream类

  • 构造方法 FileOutputStream(File file)
    创建一个向指定 File 对象表示的文件中写入数据的文件输出流。

  • 构造方法 FileOutputStream(File file, boolean append)
    创建一个向指定 File 对象表示的文件中写入数据的文件输出流。

  • void write(byte[] b)
    将 b.length 个字节从指定 byte 数组写入此文件输出流中。

  • void write(byte[] b, int off, int len)
    将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。

  • void write(int b)
    将指定字节写入此文件输出流。

  • void close()
    关闭此文件输入流并释放与此流有关的所有系统资源。

4、String类

  • boolean contains(CharSequence s)
    当且仅当此字符串包含指定的 char 值序列时,返回 true。

  • boolean equals(Object anObject)
    将此字符串与指定的对象比较。

5、Iterator 接口

  • boolean hasNext()
    如果仍有元素可以迭代,则返回 true。

  • E next()
    返回迭代的下一个元素。

6、Collection 接口

  • ArrayList类

  • LinkedLi类

7、缓冲流

  • BufferedReader类

  • BufferedWriter类


三、代码

public class Main
{public static void main(String[] args) throws IOException {Scanner in = new Scanner(System.in);System.out.println("请输入第一个文件的路径与文件名:");File file1 = new File(in.next());System.out.println("请输入第二个文件的路径与文件名:");File file2 = new File(in.next());write(file1);read_write(file1,file2);}public static void write(File file1) throws IOException{LinkedList<String> student = new LinkedList<String>();Scanner in = new Scanner(System.in);System.out.println("第一个文件存放学生的姓名,数学成绩和计算机成绩,各项之间用空格隔开。");System.out.println("\n请向第一个文件输入内容,以finish结束:");while(true){String content = in.nextLine();if(!"finish".equals(content)){student.add(content);}else{break;}}Iterator<String> it = student.iterator();FileOutputStream fileOutputStream = new FileOutputStream(file1);while(it.hasNext()){byte[] b = it.next().getBytes();fileOutputStream.write(b);      fileOutputStream.write((int)'\n');}fileOutputStream.close();}public static void read_write(File file1,File file2) throws IOException{ArrayList<String> list = new ArrayList<String>();FileReader fileReader = new FileReader(file1);FileWriter fileWriter = new FileWriter(file2);BufferedReader bufferedReader = new BufferedReader(fileReader);     BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);String content = new String();while((content = bufferedReader.readLine())!=null){if(content.startsWith("张")){list.add(content);}}Iterator<String> it = list.iterator();while(it.hasNext()){bufferedWriter.write(it.next());bufferedWriter.write('\n');}bufferedWriter.close();bufferedReader.close();System.out.println("\n第一个文件中姓“张”的学生的信息已经存放到第二个文件,请到其存放路径查阅!");}
}

四、运行截图

查看文件:

java 找出姓“张”的学生,将他们的信息写入第二个文件相关推荐

  1. Java黑皮书课后题第5章:5.8(找出得最高分的学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生

    5.8(找出得最高分的学生)编写程序,提示用户输入学生的个数.每个学生名字及分数,最后显示获得最高分的学生名字 题目 题目概述 next()读取一个字符与nextLine()读取一行 破题 代码 题目 ...

  2. 【例16 Java从键盘读入学生成绩,找出最高分,并输出学生成绩等级】

    例16:从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10 等级为'A' 成绩>=最高分-20 等级为'B' 成绩>=最高分-30 等级为'C' 其余 等级为 ...

  3. 求数学系或计算机系姓张的学生的信息,实验二数据库的简单查询和连接查询.docx...

    贵州大学实验报告 学院:计算机科学与信息学院 专业:信息安全 班级: 姓名 学号 实验组 实验时间 指导教师 成绩 实验项目名称 数据库的简单查询和连接查询 实验目的 使学生掌握SQL Server ...

  4. 求数学系或计算机系姓张的学生的信息,数据库实验三

    数据库上机实验三 计算机与信息学院实验报告 系: 专业: 年级: 姓名: 学号: 22 实验室号 计算机号 22 实验时间: 2013年10月29日 指导教师签字: 成绩: 报告退发 (订正 . 重做 ...

  5. 找出年龄最大的学生,然后将该对象的姓名变为:小猪佩奇

    需求: 定义一个学生类Student,包含三个属性姓名.年龄.性别,私有成员变量,生成无参,有参构造方法,生成get/set方法. 创建三个学生对象存入ArrayList集合中. 找出年龄最大的学生, ...

  6. C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。

    1. 题目 请编写一个函数void function(Student a[], int n, Student *s),其功能时:已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中 ...

  7. java 4位数,java 找出4位数的所有吸血鬼数字

    java 找出4位数的所有吸血鬼数字 /** * 找出四位数所有的吸血鬼数字 * 吸血鬼数字:位数为偶数的数字可以由一对数字相乘而得,这对数字包含乘积一半的位数 * 如:1260 = 21*60 */ ...

  8. 重启c语言-找出总分最高的学生

    PTA第10题-找出总分最高的学生 给定N个学生的基本信息,包括学号(由5个数字组成的字符串).姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出 ...

  9. 【题解】【PTA-Python题库】第6章-7 找出总分最高的学生 (15 分)

    找出总分最高的学生 给定N个学生的基本信息,包括学号(由5个数字组成的字符串).姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓 ...

最新文章

  1. 序列建模:时间卷积网络取代RNN(An Empirical Evaluation of Generic Convolutional and Recurrent)论文 pdf
  2. 我用1台笔记本模拟黑洞引力波,和超算2个月得出的结果只差1%
  3. 基于Nexys4 DDR的VGA显示图片
  4. html 自动排序代码,SEO中常用HTML代码大全,及权重排序
  5. qt多线程服务器_常见网络服务器并发模型
  6. 如何使用CloudFormation自动在AWS EC2上安装Anaconda
  7. readline安装
  8. python容量变化类型有哪些_python基础数据类型补充以及编码的进阶
  9. [转]很经典的http协议详解
  10. 第一次个人项目【词频统计】——PSP表格
  11. Activity端详
  12. 网易用户认证架构设计 | session token | 公开课笔记-01
  13. 如何设置pycharm代码字体
  14. python第三方库安装路径
  15. 小米笔记本pro黑苹果原厂intel蓝牙亲测可用!!
  16. 第二届广东省大学生网络攻防大赛 simple_re
  17. Linux性能优化(一)——stress压力测试工具
  18. 【Elasticsearch】Elasticsearch 报错 Values less than -1 bytes are not support
  19. 姓谢起名:温柔贤惠、好听到爆的谢姓女孩名字
  20. 计算语言学之语言理解与认知(1)

热门文章

  1. python画图将标题中有变量_如何在matplotlib中打印变量名作为标题
  2. 中鑫吉鼎|家庭理财规划具体有哪些步骤
  3. 2109课前资料及授课说明
  4. 学校计算机室使用记录,计算机室使用记录 (2)
  5. 2017,最受欢迎的 15 大 Python 库有哪些?
  6. 【科普+技术】Linux服务器被占用大量资源,用三大网站排查ip地址和初步处理挖矿病毒
  7. Team Leader你会带团队吗?深刻理解团队合作以及原理
  8. uibot取余_机器人流程自动化UiBot开发者认证教程(RPA 上下册)
  9. [转]MySQL的binlog日志
  10. PageOffice打开word时出现Office运行时错误,部分系统文件可能丢失或已损坏.(错误代码:0x80040154)