没有合适的资源?快使用搜索试试~ 我知道了~
java上机报告4——Java的输入输出 1
需积分: 0 0 下载量 58 浏览量
2022-08-08
20:54:10
上传
评论 1
收藏 585KB DOCX 举报
温馨提示
试读
19页
java上机报告4——Java的输入输出 1
资源详情
资源评论
资源推荐
Java 课程上机报告
上机题目:Java 的输入输出
张俊华 16030199025 (组长)
李金鑫 16030199026
李天浩 16030199027
上机时间:2017/05/06 14:00-18:00
地点:EIII-203
一、 小组名单
学号
姓名
工作
16030199025
张俊华
完成程序、练习例程、调试、小组讨论
16030199026
李金鑫
完成程序、练习例程、调试、小组讨论
16030199027
李天浩
完成程序、练习例程、调试、小组讨论
二、题目
实验目标:
熟悉 Java 的泛型;了解 Java 的泛型特点;初步掌握 Java 的泛型编程方法。
实验要求:
掌握 Java 输入输出类;掌握 Java 输入输出特点;掌握 Java 输入输出编程方法。
实验要求:
编写一个程序,程序实现对用户指定的文本文件中的英文字符和字符串的个数进行统
计的功能,并将结果根据用户选择输出至结果文件或屏幕。
(1)构建统计类,该类实现对 I/O 的操纵;实现对文本文件中英文字符、字符串的
统计;实现对统计结果的输出。
(2)构建测试类,该类实现与用户的交互,向用户提示操作信息,并接收用户的操
作请求。
程序应具有良好的人机交互性能,即:程序应向用户提示功能说明,并可根据用户的
功能选择,执行对应的功能,并给出带详细描述信息的最终执行结果。
三、题目分析:
本实验要求编写一个程序,实现以下功能:
1. 对用户指定文本文件中的英文字符进行统计。
2. 对文本文件中的字符串数进行统计
3. 可选择统计结果输出到屏幕或文件
1. 对指定文本文件中的英文字符进行统计:
要实现对英文字符的统计首先要创建一个 File 对象,打开用户指定的文件。然后创建
FileReader 流 , 从 FileReader 流 读 取 字 符 , 为 了 提 高 效 率 , 选 择 使 用
BufferedReader 流与 FileReader 对接,调用 BufferReader 的 read 方法读取字符。
遍历整个文件,将每个字符出现的频率保存在数组中,即可完成对英文字符数量的统
计
2. 对文本文件中的字符串数进行统计
与统计字符类似,调用 bufferedReader 的 readline 方法,每次读取一行,本实验定
义字符串数为单词数,即统计文件中的单词总数。调用 String 的 split 方法,将读到
的内容按空格符分隔成字符串数组,数组大小即为文本的单词数。
3. 可选择统计结果输出到屏幕或文件
构建 Action 类,Action 类存在字段 outputToFile,用来保存用户设置,当
outputToFile 值为 true 时,调用输出方式为文件的方法,否则调用输出方式为控制
台的方法。
四、程序实现:
张俊华:
1.实验环境:
IntelliJ IDEA 2017.1.2
Build #IU-171.4249.39, built on April 25, 2017
JRE: 1.8.0_112-release-736-b16 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
2.实现过程:
在开始编写程序前先对程序的整体结构和各个类之间的关系进行设计。定义三个类:
Counter:对文件进行读取,实现统计字符数和字符串数
Actions:程序功能和逻辑的实现
UserInterface:与用户交互,包括控制台的输入,输出到控制台或文件
在 Counter 中编写了以下方法:
public class Counter {
/**
*
统计
file
中的英文字符数
*@param file
目标文件对象缓存流
*@return
字符数目数组
*@author
张俊华
16030199025
*/
public Integer[] countCharacter(File file) throws IOException {
Integer[] letterFrequency = new Integer[26]; //数组保存每个字母出现个数
for (int i = 0; i < 26; i++) {
letterFrequency[i] = 0;
}
int tempChar;
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while ((tempChar = bufferedReader.read()) != -1) {
if (tempChar >= 'a' && tempChar <= 'z') {
letterFrequency[tempChar - 'a']++;
剩余18页未读,继续阅读
西门镜湖
- 粉丝: 23
- 资源: 296
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0