I/O Stream设计实验

实验要求和目的

深入理解java输入输出流相关类的基本用法,并且可以掌握Java程序的编写和调试。

实验环境

Java语言,PC或android平台

实验具体内容

设计和编写以下程序:

程序1:

  1. 从键盘读入多行字符串(英文),并将其写入到一个文本文件(如学号1.txt)中。
  2. 统计字符串中所有的字符个数,并且显示个数信息。(在步骤1的文档中显示字符个数统计信息)如,this document contains XX bytes in total.

程序2:

  1. 从1中文本文件读取所有的字符串。
  2. 将内容在命令行窗口显示出来(要求去掉所有空格)。

实验步骤

对于程序一:

         实验要求我们从键盘输入多行文字,并存储在一个文件中,并统计字符的个数

首先定义一个文件的地址

在为此地址建立一个文件写入流

之后便可写入相关内容,定义一个循环,每次都输入一行文字,当一行输入仅为”over”时意味着写入结束,并输出文件的字符总大小

至此,文件写入结束,关闭写入流即可

对于程序二:

实验二要求我们在命令行中输出在程序一中所写入的除空格外的全部内容

首先,根据程序一中的文件地址创建一个字节输入流对象

对文件内容进行逐个读取字符,若字符为空格,跳过不再输出

        

至此,输出结束,关闭输入流即可

源代码

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Objects;
import java.util.Scanner;/*
test
I love China
And I love ShenZhen University
But I don't think it is right
over*/
//本包HW9的文件地址:"D:\IntelliJ IDEA 2023.2.5\test\HW9\Exercise.txt"
public class Q1 {static void input(String str) throws IOException {FileOutputStream f = new FileOutputStream(str, false); //append:在原有基础上添加内容//写入内容Scanner r = new Scanner(System.in);String s;s = r.nextLine();int num = 0;//when you input 'over', it would be endedwhile (!Objects.equals(s, "over")) {f.write(s.getBytes());num += s.length();s = r.nextLine();f.write('\n');}System.out.println("this document contains " + num + " bytes in total.");f.close();  //资源释放}public static void main(String[] args) throws IOException {String str = "D:\\IntelliJ IDEA 2023.2.5\\test\\HW9\\Exercise.txt";input(str);}
}
import java.io.*;
//本包HW9的文件地址:"D:\IntelliJ IDEA 2023.2.5\test\HW9\Exercise.txt"
public class Q2 {static void output(String s) throws IOException {//字节输入流FileInputStream f = new FileInputStream(s);//读取方法:逐步读取法,一个一个字符进行读取int a;while((a=f.read())!=-1) {if ((char) a != ' ')System.out.print((char) a);}f.close();}public static void main(String []args) throws IOException {String str="D:\\IntelliJ IDEA 2023.2.5\\test\\HW9\\Exercise.txt";output(str);}
}

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

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

相关文章

农情监测系统的工作原理

TH-Q3农情监测系统是指利用现代信息技术手段,对农田环境进行实时监测、数据采集、传输和处理,以实现对农田环境的全面感知和智能管理[1]。该系统通过安装各种传感器和监测设备,能够实时监测农田的气象、土壤、植被和其他相关数据,…

VXLAN技术揭秘:实现大规模网络隔离与虚拟机无缝迁移

VXLAN简介 定义 VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)是由RFC定义的一种VLAN扩展方案。VXLAN采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network Virtu…

KOL营销策略:危机公关中的品牌修复与形象重塑

在当今数字化时代,品牌声誉的管理和维护愈发重要。危机公关作为品牌管理的重要一环,对于企业的长期生存和发展具有至关重要的影响。而KOL作为具有强大影响力和号召力的个体,在危机公关中扮演着不可或缺的角色。本文Nox聚星将和大家探讨KOL在危…

男士内裤哪个牌子质量好又舒服?2024男士内裤舒适度排行

男士内裤,不仅仅是一件简单的衣物,更是健康与舒适的关键守护者。作为每位男士的私密伙伴,它承载着每一天的舒适体验与健康保障。因此,选择一款合适的内裤,对男士们来说,显得尤为重要。 我们为您精心总结了…

国标GB28181安防视频监控EasyCVR平台级联时上级平台不显示通道是什么原因?

国标GB28181安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快,可支持的主流标准协议有GA/T 1400、国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。 有用户反馈&#xff…

Linux 基本指令1

ls指令 ls【-选项】【目录或文件】当不指定目录或文件时指令能列出当前目录下所有文件除隐藏文件 选项: -a 列出所有包括隐藏的文件-隐藏文件以.开头。 -d 将目录如文件般显示-一般用ls显示目录是显示其目录中所有文件,加-d则显示目录的信息 -r 以反…

22 CRT工具安装流程

22 CRT工具安装流程 SecureCRT 9.5 说明书 SecureCRT 9.5是一款由VanDyke Software开发的终端仿真程序。它为Windows、Mac和Linux操作系统提供了强大的SSH(Secure Shell)客户端功能。SecureCRT 9.5提供了对Telnet、RLogin、Serial和X.509等协议的支持&…

【安卓设备】通过adb批量安装apk

1、adb链接设备 H:\tv\apk>adb connect 127.0.0.1:21503 2、批量安装apk 如果地址不一致需要将 H:\tv\apk\ 改成自己的路径地址,同时注意该命令只能安装文件名为英文的不支持中文名称,如果有需要先更改文件名称。 H:\tv\apk>for %f in (H:\tv\a…

技术速递|介绍 .NET API 文档的源代码链接

作者:Min Huang,Matt Trilby-Bassett 排版:Alan Wang 开发人员在阅读 API 参考文档时,有时会需要或希望查看相应的源代码。直到不久之前,.NET API 参考文档还没有提供指向源代码的链接,这引起社区添加这一功…

借助ChatGPT撰写学术论文,如何设定有效的角色提示词指

大家好,感谢关注。这个给大家提供关于论文写作方面专业的讲解,以及借助ChatGPT等AI工具如何有效辅助的攻略技巧。有兴趣的朋友可以添加我(yida985)交流学术写作或ChatGPT等AI领域相关问题,多多交流,相互成就…

12. Django 第三方功能应用

12. 第三方功能应用 因为Django具有很强的可扩展性, 所以延伸了第三方功能应用. 通过本章的学习, 读者能够在网站开发过程中快速实现API接口开发, 验证码生成与使用, 站内搜索引擎, 第三方网站实现用户注册, 异步任务和定时任务, 即时通信等功能.12.1 Django Rest Framework框…

【区块链】记账的千年演化:从泥板到区块链

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 记账的千年演化:从泥板到区块链引言一、古代记账:泥板与…

2024 年勒索软件将比以往更加残酷

如今,世界各地的人们去学校、去医院或去药店时,都会被告知:“抱歉,我们的计算机系统瘫痪了。” 罪魁祸首往往是在世界另一端活动的网络犯罪团伙,他们会要求人们支付系统访问费用或安全归还被盗数据。 尽管警方加大打…

[vue2]深入理解vuex

本节内容 概述初始化仓库定义数据访问数据修改数据处理异步派生数据模块拆分案例-购物车 概述 vuex是一个vue的状态管理工具, 状态就是数据 场景 某个状态在很多个组件使用 (个人信息)多个组件 共同维护 一份数据 (购物车) 优势 数据集中式管理数据响应式变化 初始化仓库 …

Vue36-组件化编程的概念

一、组件化编程VS传统编程 1-1、传统方式的编写应用 存在的问题: 1-2、组件方式的编写应用 注意:是引入,不是复制! 体现了封装的概念! 二、模块化、组件化

SonarQube安全扫描常见问题

目录 一、SonarQube质量报告 二、SonarQube扫描常见问题和修复方法 三、SonarQube质量配置 最近小编在使用SonarQube工具进行代码扫描,检查代码异味,系统漏洞等,实际过程中也遇到了不少问题,这篇文章主要列举我遇到的常见问题和…

Android Jetpack Compose 实现一个电视剧选集界面

文章目录 需求概述效果展示实现思路代码实现总结 需求概述 我们经常能看到爱奇艺或者腾讯视频这类的视频APP在看电视剧的时候都会有一个选集的功能。如下图所示 这个功能其实很简单,就是绘制一些方块,在上面绘制上数字,还有标签啥的。当用户…

流程与IT双驱动:锐捷网络如何构建持续领先的服务竞争力?

AI大模型及相关应用进入“竞赛时代”,算力作为关键要素备受关注,由于算力行业对网络设备和性能有较大需求,其发展也在推动ICT解决方案提供商加速升级,提升服务响应速度和服务质量。 锐捷网络是行业领先的ICT基础设施及行业解决方…

Spark groupByKey和reduceByKey对比

在 Apache Spark 中,groupByKey 和 reduceByKey 都是用于对键值对 (key-value) 数据集进行分组和聚合的操作。然而,它们在性能和使用场景上有显著的差异。 groupByKey 函数 groupByKey 将数据集中的所有键相同的值进行分组,然后返回一个键值…