java 找出姓“张”的学生,将他们的信息写入第二个文件
一、需求
编写一个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 找出姓“张”的学生,将他们的信息写入第二个文件相关推荐
- Java黑皮书课后题第5章:5.8(找出得最高分的学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生
5.8(找出得最高分的学生)编写程序,提示用户输入学生的个数.每个学生名字及分数,最后显示获得最高分的学生名字 题目 题目概述 next()读取一个字符与nextLine()读取一行 破题 代码 题目 ...
- 【例16 Java从键盘读入学生成绩,找出最高分,并输出学生成绩等级】
例16:从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10 等级为'A' 成绩>=最高分-20 等级为'B' 成绩>=最高分-30 等级为'C' 其余 等级为 ...
- 求数学系或计算机系姓张的学生的信息,实验二数据库的简单查询和连接查询.docx...
贵州大学实验报告 学院:计算机科学与信息学院 专业:信息安全 班级: 姓名 学号 实验组 实验时间 指导教师 成绩 实验项目名称 数据库的简单查询和连接查询 实验目的 使学生掌握SQL Server ...
- 求数学系或计算机系姓张的学生的信息,数据库实验三
数据库上机实验三 计算机与信息学院实验报告 系: 专业: 年级: 姓名: 学号: 22 实验室号 计算机号 22 实验时间: 2013年10月29日 指导教师签字: 成绩: 报告退发 (订正 . 重做 ...
- 找出年龄最大的学生,然后将该对象的姓名变为:小猪佩奇
需求: 定义一个学生类Student,包含三个属性姓名.年龄.性别,私有成员变量,生成无参,有参构造方法,生成get/set方法. 创建三个学生对象存入ArrayList集合中. 找出年龄最大的学生, ...
- C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。
1. 题目 请编写一个函数void function(Student a[], int n, Student *s),其功能时:已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中 ...
- java 4位数,java 找出4位数的所有吸血鬼数字
java 找出4位数的所有吸血鬼数字 /** * 找出四位数所有的吸血鬼数字 * 吸血鬼数字:位数为偶数的数字可以由一对数字相乘而得,这对数字包含乘积一半的位数 * 如:1260 = 21*60 */ ...
- 重启c语言-找出总分最高的学生
PTA第10题-找出总分最高的学生 给定N个学生的基本信息,包括学号(由5个数字组成的字符串).姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出 ...
- 【题解】【PTA-Python题库】第6章-7 找出总分最高的学生 (15 分)
找出总分最高的学生 给定N个学生的基本信息,包括学号(由5个数字组成的字符串).姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓 ...
最新文章
- 序列建模:时间卷积网络取代RNN(An Empirical Evaluation of Generic Convolutional and Recurrent)论文 pdf
- 我用1台笔记本模拟黑洞引力波,和超算2个月得出的结果只差1%
- 基于Nexys4 DDR的VGA显示图片
- html 自动排序代码,SEO中常用HTML代码大全,及权重排序
- qt多线程服务器_常见网络服务器并发模型
- 如何使用CloudFormation自动在AWS EC2上安装Anaconda
- readline安装
- python容量变化类型有哪些_python基础数据类型补充以及编码的进阶
- [转]很经典的http协议详解
- 第一次个人项目【词频统计】——PSP表格
- Activity端详
- 网易用户认证架构设计 | session token | 公开课笔记-01
- 如何设置pycharm代码字体
- python第三方库安装路径
- 小米笔记本pro黑苹果原厂intel蓝牙亲测可用!!
- 第二届广东省大学生网络攻防大赛 simple_re
- Linux性能优化(一)——stress压力测试工具
- 【Elasticsearch】Elasticsearch 报错 Values less than -1 bytes are not support
- 姓谢起名:温柔贤惠、好听到爆的谢姓女孩名字
- 计算语言学之语言理解与认知(1)
热门文章
- python画图将标题中有变量_如何在matplotlib中打印变量名作为标题
- 中鑫吉鼎|家庭理财规划具体有哪些步骤
- 2109课前资料及授课说明
- 学校计算机室使用记录,计算机室使用记录 (2)
- 2017,最受欢迎的 15 大 Python 库有哪些?
- 【科普+技术】Linux服务器被占用大量资源,用三大网站排查ip地址和初步处理挖矿病毒
- Team Leader你会带团队吗?深刻理解团队合作以及原理
- uibot取余_机器人流程自动化UiBot开发者认证教程(RPA 上下册)
- [转]MySQL的binlog日志
- PageOffice打开word时出现Office运行时错误,部分系统文件可能丢失或已损坏.(错误代码:0x80040154)