IO与容器封装java

2.7 (Y. Daniel Liang英文版第11P716*17.8)

(Update count) Suppose you wish

to track how many times a program has been executed. You can store an int to count

the file. Increase the count by 1 each time this program is executed. Let the program

be Exercise17_08 and store the count in Exercise17_08.dat.

(更新次数)假设你希望
来跟踪一个程序被执行的次数。您可以存储一个int来计算
文件。每次执行此程序时,将计数增加1。让程序
为 Exercise17_08,并将计数存储在 Exercise17_08.dat中。

2.7
package 异常类处理与捕获;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class jishujiayi {
public static void main(String[] args) {
String filePath = "E:\\eclipse-java-2023-12-R-win32-x86_64\\异常类处理与捕获\\src\\异常类处理与捕获\\Exercise17_08.dat";
File file = new File("E:\\eclipse-java-2023-12-R-win32-x86_64\\异常类处理与捕获\\src\\异常类处理与捕获\\Exercise17_08.dat");
int count = readCount(file);
count++;
writeCount(file, count);
System.out.println("程序已执行次数: " + count);
}
public static int readCount(File file) {
int count = 0;
try (DataInputStream dis = new DataInputStream(new FileInputStream(file))) {
if (dis.available() > 0) {
count = dis.readInt();
}
} catch (IOException e) {
e.printStackTrace();
}
return count;
}public static void writeCount(File file, int count) {
try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(file))) {
dos.writeInt(count);
} catch (IOException e) {
e.printStackTrace();
}
}
}

 

2.8 (Y. Daniel Liang英文版第11P717*17.14) (Encrypt files)

Encode the file by

adding 5 to every byte in the file. Write a program that prompts the user to enter an

input file name and an output file name and saves the encrypted version of the input

file to the output file.

通过以下方式对文件进行编码:
给文件中的每个字节增加5个字节。编写一个程序,提示用户输入一个
输入文件名和输出文件名,并保存输入的加密版本
文件到输出文件。

package 异常类处理与捕获;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;public class baomiwenjin{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);System.out.print("请输入输入文件名: ");
String inputFileName = scanner.nextLine();System.out.print("请输入输出文件名: ");
String outputFileName = scanner.nextLine();encryptFile(inputFileName, outputFileName);
}public static void encryptFile(String inputFileName, String outputFileName) {
try (FileInputStream fis = new FileInputStream(inputFileName);
FileOutputStream fos = new FileOutputStream(outputFileName)) {int byteValue;
while ((byteValue = fis.read())!= -1) {
fos.write(byteValue + 5);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

 

7-3 出勤统计

某公司现需要统计员工出勤次数,具体要求如下:

输入样例:

Mark Tom
Ivor Mark
Ivor Mark
Jack
end

输入样例解释:

每行表示某天出勤的员工名单,以空格间隔。
end表示输入结束

输出样例:

Mark 3
Ivor 2
Tom 1
Jack 1

输出样例解释:

按出勤天数倒序输出,若出勤次数相同则按输入顺序输出(即先输入的先输出,样例中Tom比Jack先输入,因此先输出Tom)。每名员工占一行,格式为员工名+空格+出勤次数

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class Main{public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Map<String, Integer> attendanceMap = new HashMap<>();List<String> nameOrder = new ArrayList<>();while (true) {String line = scanner.nextLine();if ("end".equals(line)) {break;}String[] names = line.split(" ");for (String name : names) {if (!attendanceMap.containsKey(name)) {attendanceMap.put(name, 0);nameOrder.add(name);}attendanceMap.put(name, attendanceMap.get(name) + 1);}}List<Map.Entry<String, Integer>> entries = new ArrayList<>(attendanceMap.entrySet());entries.sort((e1, e2) -> {if (e2.getValue()!= e1.getValue()) {return e2.getValue() - e1.getValue();} else {return nameOrder.indexOf(e1.getKey()) - nameOrder.indexOf(e2.getKey());}});for (Map.Entry<String, Integer> entry : entries) {System.out.println(entry.getKey() + " " + entry.getValue());}}
}

 

7-4 容器-HashMap-检索

输入多个学生的成绩信息,包括:学号、姓名、成绩。

学号是每个学生的唯一识别号,互不相同。

姓名可能会存在重复。

使用HashMap存储学生信息,并实现根据学号的检索功能

输入格式:

输入多个学生的成绩信息,每个学生的成绩信息格式:学号+英文空格+姓名+英文空格+成绩

以“end”为输入结束标志

end之后输入某个学号,执行程序输出该生的详细信息

输出格式:

输出查询到的学生信息格式:学号+英文空格+姓名+英文空格+成绩

如果没有查询到,则输出:"The student "+查询的学号+" does not exist"

输入样例1:

在这里给出一组输入。例如:

20201107 张少军 83
20201116 李四 78
20201118 郑觉先 80
end
20201116

输出样例1:

在这里给出相应的输出。例如:

20201116 李四 78

输入样例2:

在这里给出一组输入。例如:

20201107 张少军 83
20201116 李四 78
20201118 郑觉先 80
end
20202316

输出样例2:

在这里给出相应的输出。例如:

The student 20202316 does not exist
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main{public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Map<String, Student> studentMap = new HashMap<>();while (true) {String line = scanner.nextLine();if ("end".equals(line)) {break;}String[] parts = line.split(" ");String id = parts[0];String name = parts[1];int score = Integer.parseInt(parts[2]);studentMap.put(id, new Student(id, name, score));}String queryId = scanner.nextLine();if (studentMap.containsKey(queryId)) {Student student = studentMap.get(queryId);System.out.println(student.getId() + " " + student.getName() + " " + student.getScore());} else {System.out.println("The student " + queryId + " does not exist");}}static class Student {private String id;private String name;private int score;public Student(String id, String name, int score) {this.id = id;this.name = name;this.score = score;}public String getId() {return id;}public String getName() {return name;}public int getScore() {return score;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何选择合适的大模型框架:LangChain、LlamaIndex、Haystack 还是 Hugging Face

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

小北Chat GPT4o 文生图初体验~

前言 在人工智能领域中&#xff0c;生成图像和文本的技术一直在不断进步。OpenAI的Chat GPT-4结合DALL-E技术&#xff0c;为用户提供了一种全新的创作体验——通过文字生成图像。在这篇博客中&#xff0c;小北将分享几次与Chat GPT-4合作的创作过程&#xff0c;展示从文字描述到…

redis aof写入以及aof重写的源码分析

这里写目录标题 版本aof的面试问题aof正常写入流程aof重写流程 版本 redis&#xff1a;6.2.7 aof的面试问题 最近找工作&#xff0c;面试被问倒了&#xff0c;记录一下 比如redis的aof指令会不会丢失&#xff1f;比如在重写aof的什么新来的操作怎么办&#xff1f; 在重写的…

无限可能LangChain——概念指南之架构

本节包含对 LangChain 关键部分的介绍。 架构 LangChain 作为一个框架由多个包组成。 langchain-core 该包包含不同组件的基本抽象以及将它们组合在一起的方法。此处定义了LLM、向量存储、检索器等核心组件的接口。这里没有定义第三方集成。依赖项有目的地保持非常轻量级。…

LaTex入门教程

目录 1.说明 2.页面的分区 3.入门介绍 &#xff08;1&#xff09;命令 &#xff08;2&#xff09;环境 &#xff08;3&#xff09;声明 &#xff08;4&#xff09;注释 4.代码结构 &#xff08;1&#xff09;导言区 &#xff08;2&#xff09;支持中文 &#xff08;3…

【字符串】65. 有效数字

本文涉及知识点 字符串 LeetCode65. 有效数字 给定一个字符串 s &#xff0c;返回 s 是否是一个 有效数字。 例如&#xff0c;下面的都是有效数字&#xff1a;“2”, “0089”, “-0.1”, “3.14”, “4.”, “-.9”, “2e10”, “-90E3”, “3e7”, “6e-1”, “53.5e93”,…

药品销售管理系统带万字文档药店管理系统java项目药店商城网站

文章目录 药品销售管理系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档&#xff08;9.9&#xffe5;带走&#xff09; 药品销售管理系统 一、项目演示 药品销售管理系统 二、项目介绍 系统角色&#xff1a;管理…

Python 函数返回值:理解 Return 语句的重要性

Python 函数返回值&#xff1a;理解 Return 语句的重要性 在 Python 编程中&#xff0c;return 语句在函数定义中扮演着至关重要的角色。它决定了函数执行后应返回的数据。但并非所有的函数都需要一个 return 语句。本文将详细探讨 return 语句的作用、函数不包含 return 语句…

GPU的工作原理

location: Beijing 1. why is GPU CPU的存储单元和计算单元的互通过慢直接促进了GPU的发展 先介绍一个概念&#xff1a;FLOPS&#xff08;Floating Point Operations Per Second&#xff0c;浮点运算每秒&#xff09;是一个衡量其执行浮点运算的能力&#xff0c;可以作为计算…

【MySQL】事务的特性和隔离级别

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ …

向https地址发送请求失败报错

错误1&#xff1a; 10:13:47.520 [main] DEBUG org.apache.http.conn.ssl.SSLConnectionSocketFactory - Starting handshake 10:13:47.523 [main] DEBUG org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-0: Shutdown connection 10:13:47.523…

vue 应用测试(一) --- 介绍

vue 应用测试&#xff08;一&#xff09; ---介绍 前端测试简介组件测试Jest 测试框架简介其他测试框架 第一个测试避免误报如何组织测试代码 组件挂载Vue2 组件挂载的方式Vue3 的挂载方式vue-test-utils挂载选项 如何调试测试用例参考小结 前端测试简介 软件测试&#xff1a;…

[AIGC] Python的Range函数

Python的range()函数是一个内置函数&#xff0c;常常用于编程中生成数列。这个函数可以生成一个整数序列&#xff0c;这个序列通常用在循环中。 文章目录 基本用法详细用法注意事项 基本用法 range()函数的基本形式为 range(stop) —— 这将生成一个从0开始&#xff0c;到stop…

Docker_1.0

1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 - 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。 - 在数百上千台服务中重复部署&#xff0c;环境不一…

(60)MOS管专题--->(15)MOS场效应管

(15)MOS场效应管 1 目录 (a)IC简介 (b)数字IC设计流程 (c)Verilog简介 (d)MOS场效应管 (e)结束 1 IC简介 (a)在IC设计中,设计师使用电路设计工具(如EDA软件)来设计和模拟各种电路,例如逻辑电路、模拟电路、数字信号处理电路等。然后,根据设计电路的…

Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported

Content type application/x-www-form-urlencoded;charsetUTF-8 not supported 问题背景新增页面代码改造 问题背景 这里有一个需求&#xff0c;前端页面需要往后端传参&#xff0c;参数包括主表数据字段以及子表数据字段&#xff0c;由于主表与子表为一对多关系&#xff0c;在…

基于单片机的多功能智能小车设计

第一章 绪论 1.1 课题背景和意义 随着计算机、微电子、信息技术的快速发展,智能化技术的发展速度越来越快,智能化与人们生活的联系也越来越紧密,智能化是未来社会发展的必然趋势。智能小车实际上就是一个可以自由移动的智能机器人,比较适合在人们无法工作的地方工作,也可…

python基础面试器(其一)

一&#xff0c; 你为什么主要学习的是python语言&#xff1f; 我觉得python 是一门优秀的综合语言&#xff0c;python的宗旨就是简明&#xff0c;优雅&#xff0c;强大&#xff0c;在数据采集&#xff0c;人工智能&#xff0c;云计算&#xff0c;金融分析&#xff0c;大数据开…

C++ 12 之 指针引用

c12指针引用.cpp #include <iostream>using namespace std;struct students12 {int age; };int main() {students12 stu;students12* p &stu; // 结构体指针students12* &pp p; // 结构体指针起别名pp->age 20;// (*pp).age 22;cout << "…

【CTF Web】CTFShow 探针泄露 Writeup(PHP+探针泄露+信息收集)

探针泄露 10 对于测试用的探针&#xff0c;使用完毕后要及时删除&#xff0c;可能会造成信息泄露 解法 查看网页源代码。 view-source:https://11170dfe-84c7-4fde-b1ca-5d1ec3dd7570.challenge.ctf.show/没有找到有用的信息。 用 dirsearch 扫描。 dirsearch -u https://1…