java 找出姓“张”的学生,将他们的信息写入第二个文件
来源:互联网 发布:ubuntu怎么安装tar.gz 编辑:程序博客网 时间:2024/04/29 06:46
一、需求
编写一个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 找出姓“张”的学生,将他们的信息写入第二个文件
- 查询出“张”姓学生中平均成绩大于75分的学生信息
- 【JAVA笔记】将字符串信息写入xml文件的方法
- 将控制台的信息写入到文件
- 输入m个学生,每个学生有4门课,在主调函数中输入学生的相关信息,编写三个函数: (1)求第一门课的平均分; (2)找出有两门课以上不及格的学生,并输出他们的学号和全部成绩,要求用指针函数实现:fl
- 将java console的输出写入文件
- 将java的console日志写入文件
- 将java console的输出写入文件
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- java io实例一:将2个文件中的内容写入一个新的文件中
- 将信息写入指定路径的Txt文件里
- OpenCV - 将图片的二进制信息写入到文件中
- php 将debug信息写入文件的函数($_SERVER['PHP_SELF'])
- 创建5个学生对象,求他们java成绩的最高分和最低分
- 黑马程序员---找出指定文件夹.java文件,列出他们的绝对路径,并计算出数量
- Java中如何将输入的信息写入文本中
- “伞”姓的起源相关信息
- java编写将本程序的次数,上次运行程序的时间,上次运行的操作系统信息写入文件中
- 观点 | 2017年前端初学者的生存指南
- WebSocket学习日记一(STOMP,Spring Boot)
- asp.net mvc 利用ffmpeg对视频进行转码截图
- Spring-boot学习笔记1--构建war包
- jdbc连接数据库的步骤
- java 找出姓“张”的学生,将他们的信息写入第二个文件
- 《设计模式之禅》读书笔记(二)之工厂方法模式
- VMWare 安装使用技巧
- 11月15日云栖精选夜读:分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?
- lambda表达式
- 深入浅出外观模式(三)
- 模式匹配和文本处理
- NPM使用
- Jenkins 2.x(Pipeline),SonarQube 和 Artifactory 搭建持续交付流水线