Java 输入输出 习题
1、目录、文件操作
(1)在C盘下建立一个目录dir1
(2)在目录dir1下建立文本文件1.txt,并在里面输入内容。
(3)输出1.txt文件的大小及最后修改日期。
(4)将1.txt重命名为2.txt。
(5)将目录dir1删除。
import java.io.File;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.Date;public class Main {public static void main(String[] args) throws Exception {File dir1 = new File("C:/dir1");if (!dir1.exists()) {dir1.mkdir(); // 创建单一目录}if (dir1.exists()) {File f1 = new File("C:/dir1/1.txt");f1.createNewFile();FileWriter fw = new FileWriter("C:/dir1/1.txt");fw.write("风吹落最后一片叶");fw.close(); // 关闭System.out.print("1.txt文件大小:" + f1.length());SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); // 格式化日期格式Date date1 = new Date(f1.lastModified()); // 将文件的最后修改日期转为日期格式String lastmodified1 = sdf.format(date1); // 日期格式化System.out.println(",最后修改日期:" + lastmodified1);File f2 = new File("C:/dir1/2.txt"); // 创建要被重命名的目标文件,以便重命名f1.renameTo(f2); // 重命名指向目标文件System.out.print("2.txt文件大小:" + f2.length());Date date2 = new Date(f2.lastModified());String lastmodified2 = sdf.format(date2);System.out.println(",最后修改日期:" + lastmodified2);f2.delete();dir1.delete(); //删除dir1目录}}
}
2、单词计数
统计文件中单词出现次数,单词间以空格,tab或回车间隔。
import java.io.File;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.TreeMap;public class Main {public static void main(String[] args) throws Exception {File dr = new File("C:/wordcount");if (!dr.exists()) {dr.mkdir();}File f1 = new File("C:/wordcount/1.txt");if (!f1.exists()) {f1.createNewFile();}Scanner sc = new Scanner(new File("C:/wordcount/1.txt")); // 从文件输入,需要文件中已有内容Map<String, Integer> map = new TreeMap<String, Integer>();while (sc.hasNext()) {String word = sc.next();Integer num = map.get(word);if (num == null) {map.put(word, 1);} else {map.put(word, num + 1);}}for (Entry<String, Integer> entry : map.entrySet()) {System.out.println(entry.getKey() + ":" + entry.getValue());}}
}
3、图片还原
文件1.jpg经过如下操作后变为2.jpg,请还原图片1.jpg。
import java.io.FileInputStream;
import java.io.FileOutputStream;public class Test {public static void main(String[] args) throws Exception {FileInputStream fis = new FileInputStream("c:/1.jpg");FileOutputStream fos = new FileOutputStream("c:/2.jpg");while (true) {int a = fis.read();if (a == -1) {break;} else {fos.write(a ^ 100);/*(按位异或运算符(^)是一个二元运算符,要化为二进制进行计算,在运算的两个元中,两个相同位相同,则结果为0,否则为1)*/}}fos.close();fis.close();}
}
还原代码如下:
import java.io.FileInputStream;
import java.io.FileOutputStream;public class Main {public static void main(String[] args) throws Exception {FileInputStream fis = new FileInputStream("C:/2.jpg");FileOutputStream fos = new FileOutputStream("C:/1.jpg");while (true) {int a = fis.read();if (a == -1) {break;} else {fos.write(a ^ 100); /*(按位异或运算符(^)是一个二元运算符,要化为二进制进行计算,在运算的两个元中,两个相同位相同,则结果为0,否则为1)*/}}fos.close();fis.close();}
}
4、学生记录排序
文件1.txt :1.txt
1.txt中保存了若干同学的成绩信息,按如下方式对记录排序再存回到1.txt中。
按班号升序排列,班号相同按成绩降序排列,参考效果:
/*
这里读写文件会导致中文因编码格式不一样出现乱码,我提前在Eclipse菜单Edit - setencoding将格式改为UTF-8,或者写入记事本格式时的最后换行部分改为\n\r
*/import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;public class Main {public static void main(String[] args) throws Exception {Scanner sc = new Scanner(new File("C:/1.txt"));sc.nextLine(); //跳过标题行List<Student> ss = new ArrayList<Student>();while (sc.hasNext()) {Student student = new Student(sc.next(), sc.next(), sc.nextInt(), sc.nextInt(), sc.nextInt(), sc.nextInt());ss.add(student);}sc.close();Collections.sort(ss, new Comparator1());FileWriter fw = new FileWriter("C:/2.txt");fw.write("学号\t姓名\t班号\t数学\t语文\t英语\t总分\n");for (Student s : ss) {fw.write(s.toString());}fw.close();new File("C:/1.txt").delete();new File("C:/2.txt").renameTo(new File("C:/1.txt"));}
}class Student {String sno, sname;int class_number, math, chinese, english, sum;public Student(String sno, String sname, int class_number, int math, int chinese, int english) {super();this.sno = sno;this.sname = sname;this.class_number = class_number;this.math = math;this.chinese = chinese;this.english = english;this.sum = this.math + this.chinese + this.english;}@Overridepublic String toString() {return sno + "\t" + sname + "\t" + class_number + "\t" + math + "\t" + chinese + "\t" + english + "\t" + sum + "\n";}
}class Comparator1 implements Comparator<Student> {public int compare(Student o1, Student o2) {if (o1.class_number == o2.class_number) { // 若班号相同return o2.sum - o1.sum; // 总成绩降序排列}return o1.class_number - o2.class_number; // 按班号升序排列}
}
5、出题
随机出100道100内的整数加减乘除题,保存到两个文本文件中,一个不带答案,一个带答案。
减法结果大于等于0,除数不能为0,且要能除尽。
Java 输入输出 习题相关推荐
- java输入输出及文件_java输入输出流及文件操作
我只选择了一些代码 注意包声明和相关结构 许多类都继承了MyFile这个类 深入研究可以参考<java文件操作> 1.[代码]读取文件内容 /** *Author:Yuanhonglong ...
- 在java中开发图形用户_2016年计算机二级考试《JAVA》习题:编写图形用户界面
第9章 编写图形用户界面 1[单选题]哪个布局管理器使用的是组件的尺寸? ( ) A.FlowLayout B.BorderLayoutC.GridLayout D.CardLayout 参考答案:A ...
- JAVA编程习题及答案_完美版
JAVA编程习题及答案_完美版 原创 lingwu7 最后发布于2017-08-15 20:01:12 阅读数 10796 收藏 发布于2017-08-15 20:01:12 版权声明:本文为博主原创 ...
- 练习-Java输入输出之字节数据输入输出之综合练习
第1关:练习-Java输入输出之字节数据输入输出之综合练习 任务描述 编程要求 测试说明 任务描述 本关任务:使用字节输出流和输入流,把给定文件里的内容复制到另一个给定文件中. 编程要求 仔细阅读右侧 ...
- Java课程习题代码地址
Java课程习题代码: 紫金大学,2019级Java课程习题,教师:曹双喜https://gitee.com/ipkiss/java-course-exercise-code.git 课程习题 1:J ...
- java期中考试答案传智播客,传智播客java考试习题3.docx
传智播客java考试习题3.docx 第三次作业 1.jar命令的()参数可以创建归档文件1分换题 o A.c o B.v o C.f o D.x 参考答案A 答案说明c参数,创建归档文件 2.下列选 ...
- java输入输出的方法
java输入输出 目录 一.控制台输入输出 二.文件读写 一.控制台输入输出 java控制台的输入输出主要依赖于scanner类,使用Scanner scanner=new Scanner(Syst ...
- 学习-Java输入输出之OutputStream类之字节数据输出
第1关:学习-Java输入输出之OutputStream类之字节数据输出 任务描述 相关知识 什么是 OutputStream 类 OutputStream 类的常用方法 OutputStream 类 ...
- 蓝桥杯Java输入输出相关
转载自:http://blog.csdn.net/Chen_Tongsheng/article/details/53354169 一.注意点 1. 类名称必须采用public class Main方式 ...
最新文章
- Hadoop.2.x_HA部署
- jQuery中focusin()和focus()、find()和children()的差别
- 直播报名 | 教你从 0 到 1 打造数字化运营闭环
- React-Native 之 项目实战(五)
- 定了!10 月 8 日!Jupyter Notebook 原生支持将正式来到 VS Code!
- 前端学习(1860)vue之电商管理系统电商系统之渲染login组件并且实现路由重定向
- LeetCode 1488. 避免洪水泛滥(贪心+set二分查找)
- 位运算解决二进制位上不同数字的个数问题
- java反射 获取属性_Java反射学习-3 - 反射获取属性,方法,构造器
- android导航点自动生成,Android史上最简单的引导页导航点实现方式【原创】
- Android-APP之桌面宠物
- 心理学入门必读好物,《亲密关系》精华版
- IDEA导入scala详解
- 【MATLAB100个实用小技巧】——界面设计(33-43)
- Efficient Graph-Based Image Segmentation论文思路
- 毕业设计 基于JSP动漫论坛的设计与实现
- Could not target platform: ‘Java SE 11‘ using tool chain
- Hamming Codes
- STM32链接脚本STM32F407ZETx_FLASH.ld
- PostgreSQL 15 preview -:你了解PostgreSQL GUC 参数吗?
热门文章
- springboot核酸检查预约系统毕业设计毕设作品开题报告开题答辩PPT
- 生日计算机音乐,生日歌 MIDI File Download :: MidiShow
- 基于S3C2410平台移植Linux 2.6内核指南
- 冒险岛服务器租用需要考虑哪些因素?
- JavaScript正则表达式(完整版)
- 列出一份ASCII 表省地到处找了!
- Map创建自定义图片图层,图片会随着地图缩放而缩放,uniapp、高德、腾讯、百度
- C语言 65535的补码,65535(计算机中65535表示什么)
- python基础命令
- uvm_reg中修改mirror、desired、actual value的方法总结