Java宝藏实验资源库(2)字节流

2024-06-20 07:12

本文主要是介绍Java宝藏实验资源库(2)字节流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、实验目的

  1. 掌握输入输出流的基本概念。
  2. 掌握字节流处理类的基本结构。
  3. 掌握使用字节流进行输入输出的基本方法。

二、实验内容过程及结果

*17.10 (Split files) Suppose you want to back up a huge file (e.g., a 10-GB AVI file) to a CD-R. You can achieve it by splitting the file into smaller pieces and backing up

these pieces separately. Write a utility program that splits a large file into smaller

ones using the following command:

java Exercise17_10 SourceFile numberOfPieces

The command creates the files SourceFile.1, SourceFile.2, . . . , SourceFile.n,

where n is numberOfPieces and the output files are about the same size.

*17.10(拆分文件)假设你想备份一个大文件(例如,一个10gb的AVI文件)到CD-R。您可以通过将文件分割成更小的部分并进行备份来实现它这些部分是分开的。编写一个实用程序,将大文件分割成小文件使用以下命令的:

SourceFile numberOfPieces

该命令创建SourceFile文件。1,源文件。2、……SourceFile.n,

其中n为numberOfPieces,输出文件大小大致相同。

运行代码如下 :

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;class FileSplitter {public static void main(String[] args) {if (args.length!= 2) {System.out.println("Usage: java FileSplitter <C:\\Users\\DELL\\Desktop\\算法大题.docx> <3>");return;}String sourceFile = args[0];int numberOfPieces = Integer.parseInt(args[1]);splitFile(sourceFile, numberOfPieces);}public static void splitFile(String sourceFile, int numberOfPieces) {File file = new File(sourceFile);long fileSize = file.length();long pieceSize = fileSize / numberOfPieces;try (FileInputStream fis = new FileInputStream(file)) {for (int i = 1; i <= numberOfPieces; i++) {String outputFile = sourceFile + "." + i;try (FileOutputStream fos = new FileOutputStream(outputFile)) {int bytesRead;byte[] buffer = new byte[1024];while ((bytesRead = fis.read(buffer))!= -1) {fos.write(buffer, 0, bytesRead);if (fos.getChannel().position() >= pieceSize) {break;}}}}} catch (IOException e) {e.printStackTrace();}}
}

运行结果 

*17.12 (Combine files) Write a utility program that combines the files together into a new file using the following command:

java Exercise17_12 SourceFile1 . . . SourceFilen TargetFile

The command combines SourceFile1, . . . , and SourceFilen into TargetFile.

FIGURE 17.21

(a)The program splits a file. (b) The program combines files into a new file.

*17.12(组合文件)编写一个实用程序,使用以下命令将文件组合成一个新文件:

java Exercise17_12 SourceFile1…SourceFilen TargetFile

该命令将SourceFile1,…,并将SourceFilen放入TargetFile中。

图17.21

(a)程序拆分文件。(b)程序将文件合并成一个新文件。

运行代码如下 :

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class FileCombiner {public static void main(String[] args) {if (args.length < 3) {System.out.println("Usage: java FileCombiner <C:\\Users\\DELL\\Desktop\\实验4题目.docx> <C:\\Users\\DELL\\Desktop\\实验报告格式说明-2 - 副本.docx> <C:\\Users\\DELL\\Desktop\\1.docx>");return;}String targetFile = args[args.length - 1];FileOutputStream fos = null;try {fos = new FileOutputStream(targetFile);for (int i = 0; i < args.length - 1; i++) {String sourceFile = args[i];FileInputStream fis = new FileInputStream(sourceFile);int bytesRead;byte[] buffer = new byte[1024];while ((bytesRead = fis.read(buffer))!= -1) {fos.write(buffer, 0, bytesRead);}fis.close();}} catch (IOException e) {e.printStackTrace();} finally {try {if (fos!= null) {fos.close();}} catch (IOException e) {e.printStackTrace();}}}
}

运行结果

三、实验结论 

       通过本次实验实践了拆分与整合知识和操作,得到了代码思想决定了你这个代码的优劣性与可执行性,只有平常多注重思维的培养,才能真写出更高效率程序的感悟,在代码思维方面可以再努力!

 结语   

思维决定高度

态度决定成败

不要成为AI的搬运工

!!! 

这篇关于Java宝藏实验资源库(2)字节流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1077454

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件