实验报告 Java输入和输出

实验目的

  1. 掌握Java 输入输出流的应用

  1. 掌握缓冲流的应用。

实验要求:

(1)掌握字节输入输出流的操作

(2)掌握字符输入输出流的操作

(3)理解字节流和字符流的区别

(4)代码应遵循Java编程规范,包含恰当的注释说明。

实验内容:

1.附件中有一张图片,文件名为1.jpg,编写一个程序,通过main方法传递源图片地址和目标地址,实现图片的复制。例如:类名为Test,通过调用java Test d:\test\1.jpg d:\test\2.jpg,完成将d盘test目录下的1.jpg图片复制为d盘test目录下的2.jpg图片。
提示:图片文件的内容是二进制代码表示时,通过字节流实现图片的复制。

2.附件中有一个文本文件demo1.txt,编写程序,统计文件中指定的单词出现次数,并在屏幕上输入结果。
   例如:类名为Test,通过调用java Test d:\test\demo1.txt Trump,
            屏幕输出:Trump出现次数:3。

3.题目需求:完成文件复制操作
请将附件中的demo1.txt文件拷贝到D:\test目录下。通过程序完成将demo1.txt文件内容复制到一个新的文件demo2.txt(注意:新文件在程序中使用createNewFile方法创建),并将其中的所有小写字母转换为大写字母,大写字母转换为小写字母。

 demo1.txt 内容如下:

Election 2020 live updates and resultsLast Updated: November 5, 2020, 10:32 AM ETElection Day is turning into election week as the counting of votes continues across the United States, with preliminary results showing tight races in several key battleground states.Candidates need 270 Electoral College votes to secure the presidency. ABC News projects President Donald Trump currently has 214, while former Vice President Joe Biden has 253. Biden's count includes Wisconsin, where ABC News is characterizing him as the apparent winner because the vote is very close and has not yet been certified.MORE: Election 2020 undecided races: The presidency, key states and Senate contests Both Trump, the Republican incumbent, and Biden, the Democratic challenger, addressed the nation in the early hours of Wednesday morning, each expressing confidence in the race for the White House. By Wednesday evening, Biden again delivered remarks urging patience, but Trump remained out of public view. The president took to Twitter instead to spout baseless claims of voter fraud and falsely call races for himself, while his lawyers waged legal battles to halt vote counting in crucial states.


实验1源代码:

package Package240529;
import java.io.*;

public class Test1 {
    public static void main(String[] args) throws Exception{
        // 定义源文件路径和目标文件路径
        String path1="d:"+File.separator+"test"+File.separator+"1.jpg";
        String path2="d:"+File.separator+"test"+File.separator+"2.jpg";

        // 创建文件对象
        File file1=new File(path1);
        File file2=new File(path2);

        // 创建输入流,读取源文件内容
        InputStream input=new FileInputStream(file1);
        byte[] b=new byte[(int)file1.length()];
        input.read(b);

        // 创建输出流,将读取到的内容写入目标文件
        OutputStream output=new FileOutputStream(path2);
        output.write(b);

        // 关闭输入输出流
        output.close();
        input.close();
    }
}

 实验2源代码:

package Package240529;

import java.io.*;

public class Test2 {
    public static void main(String[] args) throws Exception {
        // 定义文件路径和要查找的单词
        String filePath = "d:" + File.separator + "test" + File.separator + "demo1.txt";
        String word = "Trump";

        // 创建文件对象
        File file = new File(filePath);
        // 创建输入流,读取文件内容
        InputStream input = new FileInputStream(file);

        // 创建一个字节数组,用于存储文件内容
        byte[] b = new byte[(int) file.length()];
        // 将文件内容读取到字节数组中
        input.read(b);
        // 关闭输入流
        input.close();

        // 将字节数组转换为字符串
        String content = new String(b);
        // 初始化计数器
        int count = 0;
        // 查找单词在字符串中的位置
        int index = content.indexOf(word);

        // 循环查找单词出现的次数
        while (index != -1) {
            count++;
            index = content.indexOf(word, index + 1);
        }

        // 输出单词出现的次数
        System.out.println(word + "出现次数:" + count);
    }
}

实验3源代码:

package Package240529;

import java.io.*;

public class Test3 {
    public static void main(String[] args) throws Exception {
        // 定义源文件路径和目标文件路径
        String path1 = "d:" + File.separator + "test" + File.separator + "demo1.txt";
        File file1 = new File(path1);

        String path2 = "d:" + File.separator + "test" + File.separator + "demo2.txt";
        File file2 = new File(path2);

        // 如果目标文件不存在,则创建新文件
        if (!file2.exists()) {
            file2.createNewFile();
        }

        // 创建输入流,读取源文件内容
        InputStream input = new FileInputStream(file1);
        byte[] b = new byte[(int) file1.length()];
        input.read(b);

        // 创建输出流,将处理后的内容写入目标文件
        OutputStream output = new FileOutputStream(file2);
        for (int i = 0; i < file1.length(); i++) {
            // 判断字符是否为大写字母,如果是则转换为小写字母
            if (b[i] >= 65 && b[i] <= 90) {
                b[i] += 32;
            } else if (b[i] >= 97 && b[i] <= 122) { // 判断字符是否为小写字母,如果是则转换为大写字母
                b[i] -= 32;
            }
            // 将处理后的字符写入目标文件
            output.write(b, i, 1);
        }
        // 关闭输入输出流
        input.close();
        output.close();
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

游戏找不到steam_api64.dll如何解决,全面解析原因及解决方法

在现代游戏中&#xff0c;Steam平台已经成为了玩家们下载、安装和玩游戏的主要渠道之一。然而&#xff0c;有些玩家可能会遇到一个问题&#xff0c;即游戏找不到steam_api64.dll文件。这个问题可能会导致游戏无法正常运行或启动。本文将详细介绍如何解决这个问题&#xff0c;帮…

深度网络学习笔记(一)——self-attention机制介绍和计算步骤

self-attention机制介绍及其计算步骤 前言一、介绍和意义二、 计算细节2.1 计算Attention Score2.2 计算value2.3 计算关联结果b2.4 统一计算 三、总结 前言 Transformer是一种非常常见且强大的深度学习网络架构&#xff0c;尤其擅长处理输出为可变长度向量序列的任务&#xf…

51仿真器 PZ-51Tracker 未知设备

插上仿真器&#xff0c;右击我的电脑 等待一下&#xff0c;选择winUSB 此时在keil中选择仿真器会报错&#xff0c;需要安装如下我是win10) 安装好后退出再试&#xff0c;没有报错即可 这项也要选择 另外配置晶振

AI去衣技术中的几何着色:揭秘数字时尚的魔法

在数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度改变我们的生活&#xff0c;从智能家居到自动驾驶汽车&#xff0c;再到个性化医疗。然而&#xff0c;AI的影响远不止于此。它正在重塑我们对艺术、设计和时尚的理解。特别是在数字时尚领域&#…

数学建模 —— 人工神经网络(6)

目录 一、人工神经网络 1.1 人工神经网络结构 1.2 神经元/感知器 1.3 激活函数 1.3.1 sign函数 1.3.2 sigmoid函数&#xff08;Logistic函数&#xff09; 1.3.3 tanh双曲正切函数 1.3.4 ReLU函数 1.4 分类 二、BP人工神经网络 2.1 概述 2.2 处理过程 2.3 例题 2.…

太空音响器

目录 1&#xff0e;课程设计项目 2.任务和要求 3.总体功能设计与仿真 3.1.元器件汇总 3.2.总体方案设计 3.3 总体电路仿真 4.单元模块设计及电路仿真 4.1 互补型振荡器电路 5.组装&#xff0c;调试与测试 6.分析与总结 7.参考文献 1&#xff0e;课程设…

汇编原理 | 二进制、跳转指令、算数运算、

一.二进制 two complement reprentation&#xff08;补码&#xff09; 二进制的运算&#xff1a; 6的二进制 0110 -6的二进制 如何表示&#xff1f; 四个bit的第一个bit表示符号&#xff1a;1负0正 -6表示为1010 解释&#xff1a; 0 0000 1 0001 -1 1111&#xff08;由 …

[图解]建模相关的基础知识-01

6 00:00:21,930 --> 00:00:25,450 我们尝试以一个更深的 7 00:00:25,460 --> 00:00:27,170 或者更基本的角度 8 00:00:28,410 --> 00:00:32,760 来思考建模的问题 9 00:00:37,630 --> 00:00:42,470 首先&#xff0c;我们来说一个观点&#xff0c;就是说 10 00:…

WPS部分快捷操作汇总

记录一些个人常用的WPS快捷操作 一、去除文档中所有的超链接&#xff1a; 1、用WPS打开文档&#xff1b; 2、用Ctrla全选&#xff0c;或者点击上方的【选择】-【全选】&#xff0c;选中文档全部内容&#xff1b; 3、按CTRLSHIFTF9组合键&#xff0c;即可一次性将取文档中所有…

IDEA一键启动多个微服务

我们在做微服务项目开发的时候&#xff0c;每次刚打开IDEA&#xff0c;就需要把各个服务一个个依次启动&#xff0c;特别是服务比较多时&#xff0c;逐个点击不仅麻烦还费时。下面来说一下如何一键启动多个微服务。 操作步骤 点击Edit Configurations 2.点击“”&#xff0c;…

数据图同步软件ETL

ETL介绍 ETL&#xff08;Extract, Transform, Load&#xff09;软件是专门用于数据集成和数据仓库过程中的工具。ETL过程涉及从多个数据源提取数据&#xff0c;对数据进行转换以满足业务需求&#xff0c;然后将数据加载到目标数据库或数据仓库中。以下是ETL软件的一些关键功能…

matplotlib实现双柱图

1&#xff0c;读取txt文件实现数据可视化 2&#xff0c;txt文件如下图 姓名,语文,数学,英语 小米,98,100,20 小明,100,20,98 小黑,78,98,1003&#xff0c;代码如下 import matplotlib.pyplot as plt import matplotlib matplotlib.use(TkAgg) plt.rcParams[font.family]SimHe…

鸿蒙应用Stage模型【应用/组件级配置】

应用/组件级配置 在开发应用时&#xff0c;需要配置应用的一些标签&#xff0c;例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。 应用包名配置 应用需要在工程的AppScope目录下的[app.json5配置文件]中配置bundleName标签&#xff0c;…

多元分类预测 | 基于哈里斯鹰优化HHO-卷积神经网络数据分类预测

文章目录 效果一览文章概述订阅专栏只能获取一份代码部分源码参考资料效果一览 文章概述 多元分类预测 | 基于哈里斯鹰优化HHO-卷积神经网络数据分类预测 HHO-CNN 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程序可出分类…

设计模式(四)原型模式

文章目录 原型模式简介结构UML图具体实现关于拷贝浅拷贝深拷贝实现深拷贝方法 原型模式简介 原型模式是指&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型&#xff0c;创建新的对象。工作原理&#xff1a;原型模式创建新的对象&#xff0c;其本质就…

iOS App Tech Support(URL)

咪萌是一个语音类交友直播App&#xff0c;分成红艳知己&#xff0c;点唱大厅&#xff0c;歌手驻唱等不同房间分类&#xff0c;广场可以看到其他人发的一些动态&#xff0c;一个非常不错的App 如果您有任何疑问&#xff0c;您可以留言或者将问题发送至我们的邮箱。 我们会第一时…

子比主题zibll5.7修复版

下载地址&#xff1a;子比主题zibll5.7修复版

GPT-4o VS GPT-3.5 完胜

前言&#xff1a; 最近&#xff0c;GPT-4o已经限时免费开放了&#xff0c;试了一下&#xff0c;然后&#xff0c;说我的时间到了&#xff0c;然后&#xff0c;有给我转到3.5&#xff0c;正好遇到一个问题做一下对吧&#xff0c;感觉4O完胜啊。3.5还是很好胡诌&#xff0c;也就…

C语言深入理解指针(5)

文章目录 一、sizeof和strlen的对比1、sizeof2、strlen3、sizeof和strlen的对比 二、数组和指针笔试题解析1、一维数组2、字符数组3、二维数组 一、sizeof和strlen的对比 1、sizeof siezeof是一个操作符&#xff0c;sizeof计算的是变量所占内存空间大小&#xff0c;单位是字节…

Photoshop 首选项设置建议

Windows Ps菜单&#xff1a;编辑/首选项 Edit/Preferences 快捷键&#xff1a;Ctrl K macOS Ps菜单&#xff1a;Photoshop/首选项 Photoshop/Preferences 快捷键&#xff1a;Cmd K 对 Photoshop 的首选项 Preferences进行设置&#xff0c;可以提高修图与设计效率。下面是一些…