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 输入输出 习题相关推荐

  1. java输入输出及文件_java输入输出流及文件操作

    我只选择了一些代码 注意包声明和相关结构 许多类都继承了MyFile这个类 深入研究可以参考<java文件操作> 1.[代码]读取文件内容 /** *Author:Yuanhonglong ...

  2. 在java中开发图形用户_2016年计算机二级考试《JAVA》习题:编写图形用户界面

    第9章 编写图形用户界面 1[单选题]哪个布局管理器使用的是组件的尺寸? ( ) A.FlowLayout B.BorderLayoutC.GridLayout D.CardLayout 参考答案:A ...

  3. JAVA编程习题及答案_完美版

    JAVA编程习题及答案_完美版 原创 lingwu7 最后发布于2017-08-15 20:01:12 阅读数 10796 收藏 发布于2017-08-15 20:01:12 版权声明:本文为博主原创 ...

  4. 练习-Java输入输出之字节数据输入输出之综合练习

    第1关:练习-Java输入输出之字节数据输入输出之综合练习 任务描述 编程要求 测试说明 任务描述 本关任务:使用字节输出流和输入流,把给定文件里的内容复制到另一个给定文件中. 编程要求 仔细阅读右侧 ...

  5. Java课程习题代码地址

    Java课程习题代码: 紫金大学,2019级Java课程习题,教师:曹双喜https://gitee.com/ipkiss/java-course-exercise-code.git 课程习题 1:J ...

  6. 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.下列选 ...

  7. java输入输出的方法

    java输入输出 目录 一.控制台输入输出 二.文件读写 一.控制台输入输出  java控制台的输入输出主要依赖于scanner类,使用Scanner scanner=new Scanner(Syst ...

  8. 学习-Java输入输出之OutputStream类之字节数据输出

    第1关:学习-Java输入输出之OutputStream类之字节数据输出 任务描述 相关知识 什么是 OutputStream 类 OutputStream 类的常用方法 OutputStream 类 ...

  9. 蓝桥杯Java输入输出相关

    转载自:http://blog.csdn.net/Chen_Tongsheng/article/details/53354169 一.注意点 1. 类名称必须采用public class Main方式 ...

最新文章

  1. Hadoop.2.x_HA部署
  2. jQuery中focusin()和focus()、find()和children()的差别
  3. 直播报名 | 教你从 0 到 1 打造数字化运营闭环
  4. React-Native 之 项目实战(五)
  5. 定了!10 月 8 日!Jupyter Notebook 原生支持将正式来到 VS Code!
  6. 前端学习(1860)vue之电商管理系统电商系统之渲染login组件并且实现路由重定向
  7. LeetCode 1488. 避免洪水泛滥(贪心+set二分查找)
  8. 位运算解决二进制位上不同数字的个数问题
  9. java反射 获取属性_Java反射学习-3 - 反射获取属性,方法,构造器
  10. android导航点自动生成,Android史上最简单的引导页导航点实现方式【原创】
  11. Android-APP之桌面宠物
  12. 心理学入门必读好物,《亲密关系》精华版
  13. IDEA导入scala详解
  14. 【MATLAB100个实用小技巧】——界面设计(33-43)
  15. Efficient Graph-Based Image Segmentation论文思路
  16. 毕业设计 基于JSP动漫论坛的设计与实现
  17. Could not target platform: ‘Java SE 11‘ using tool chain
  18. Hamming Codes
  19. STM32链接脚本STM32F407ZETx_FLASH.ld
  20. PostgreSQL 15 preview -:你了解PostgreSQL GUC 参数吗?

热门文章

  1. springboot核酸检查预约系统毕业设计毕设作品开题报告开题答辩PPT
  2. 生日计算机音乐,生日歌 MIDI File Download :: MidiShow
  3. 基于S3C2410平台移植Linux 2.6内核指南
  4. 冒险岛服务器租用需要考虑哪些因素?
  5. JavaScript正则表达式(完整版)
  6. 列出一份ASCII 表省地到处找了!
  7. Map创建自定义图片图层,图片会随着地图缩放而缩放,uniapp、高德、腾讯、百度
  8. C语言 65535的补码,65535(计算机中65535表示什么)
  9. python基础命令
  10. uvm_reg中修改mirror、desired、actual value的方法总结