Java宝藏实验资源库(1)文件

一、实验目的

  1. 掌握文件、目录管理以及文件操作的基本方法。
  2. 掌握输入输出流的基本概念和流处理类的基本结构。
  3. 掌握使用文件流进行文件输入输出的基本方法。

二、实验内容过程及结果

1.显示指定目录下的每一级文件夹中的.java文件

运行代码如下 : 

import java.io.File;
class DisplayJavaFiles {
    public static void main(String[] args) {
        File dir = new File("E:\\Java Code"); // 指定目录路径
         displayJavaFilesInDirectory(dir);
         } private static void displayJavaFilesInDirectory(File dir) {
        File[] files = dir.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    displayJavaFilesInDirectory(file); // 递归调用
                    } else if (file.getName().endsWith(".java")) {
                    System.out.println(file.getAbsolutePath());
                }
            }
        }
    }
}

运行结果 

2.删除指定文件夹。

运行代码如下 : 

import java.nio.file.Files;
import java.nio.file.Path;

public class DeleteDirectory {
    public static void main(String[] args) {
        Path directory = Path.of("E:/aaaaa"); // 指定目录路径
        try {
            Files.deleteIfExists(directory); // 删除目录及其内容
            System.out.println("Directory deleted successfully.");
        } catch (Exception e) {
            System.err.println("Error deleting directory: " + e.getMessage());
        }
    }
}

运行结果

3.文件复制(分别用文件输入输出流、缓冲流处理,比较复制时间)

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopy {

    public static void main(String[] args) {
        File sourceFile = new File("E:\\examples\\1\\实验报告格式说明-7.docx"); // 替换为你的源文件路径
        File destinationFile = new File("E:\\examples\\1\\111.docx"); // 替换为你的目标文件路径

        long startTimeIO, endTimeIO;
        long startTimeBuffered, endTimeBuffered;

        // 使用文件输入输出流进行文件复制
        startTimeIO = System.currentTimeMillis();
        copyWithIOStreams(sourceFile, destinationFile);
        endTimeIO = System.currentTimeMillis();

        // 使用缓冲流进行文件复制
        startTimeBuffered = System.currentTimeMillis();
        copyWithBufferedStreams(sourceFile, destinationFile);
        endTimeBuffered = System.currentTimeMillis();

        // 比较复制时间
        long timeTakenIO = endTimeIO - startTimeIO;
        long timeTakenBuffered = endTimeBuffered - startTimeBuffered;

        System.out.println("使用文件输入输出流复制文件的时间:" + timeTakenIO + " 毫秒");
        System.out.println("使用缓冲流复制文件的时间:" + timeTakenBuffered + " 毫秒");
    }

    // 使用文件输入输出流进行文件复制
    public static void copyWithIOStreams(File sourceFile, File destinationFile) {
        try (FileInputStream fis = new FileInputStream(sourceFile); FileOutputStream fos = new FileOutputStream(destinationFile)) {
            int b;
            while ((b = fis.read())!= -1) {
                fos.write(b);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 使用缓冲流进行文件复制
    public static void copyWithBufferedStreams(File sourceFile, File destinationFile) {
        try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(sourceFile));
             BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destinationFile))) {
            int b;
            while ((b = bis.read())!= -1) {
                bos.write(b);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

三、实验结论

       通过本次实验实践了文件输入输出流、缓冲流处理的知识和操作,得到了实践出真知,只有亲自动手敲才能真正掌握知识点与技能包的感悟,在敲代码手速方面可以再努力!

 结语  

书籍是人类进步的阶梯

网课是人类进步的电梯

别让CV大法荒废了你

!!! 

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

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

相关文章

[C++][数据结构][图][中][图的遍历][最小生成树]详细讲解

目录 1.图的遍历1.广度优先遍历2.深度优先遍历 2.最小生成树1.Kruskal算法2.Prim算法 1.图的遍历 给定一个图G和其中任意一个顶点 v 0 v_0 v0​,从 v 0 v_0 v0​出发,沿着图中各边访问图中的所有顶点,且每个顶 点仅被遍历一次 “遍历”&…

# [0619] Task01 绪论、马尔可夫过程、动态规划

easy-rl PDF版本 笔记整理 P1 - P2 joyrl 比对 补充 P1 - P3 相关 代码 整理 最新版PDF下载 地址:https://github.com/datawhalechina/easy-rl/releases 国内地址(推荐国内读者使用): 链接: https://pan.baidu.com/s/1isqQnpVRWbb3yh83Vs0kbw 提取码: us…

lib9-03 配置基于时间的 ACL

实验:配置基于时间的 ACL 1、实验目的 通过本实验可以掌握定义 time-range 的方法基于时间 ACL 的配置和调试方法 2、实验拓扑 实验拓扑如下图所示。本实验要求只允许主机 PC1 在周一到周五每天的 8:00-17:00 访问路由器 R3 的Telnet 服务…

Python的三种方式显示图片

from PIL import Image import numpy as np im Image.open("img.png") #方法一:使用PIL库显示图片 a np.array(im) imImage.fromarray(a) im.show() import matplotlib.pyplot as plt #方法二:使用matplotlib库显示图片 plt.imshow(a) plt.s…

Covalent实现对1000亿笔链上交易解析,支持AI长期数据可用性

在区块链与人工智能(AI)交汇处,讨论往往集中于去中心化推理和去中心化训练等方面。然而,这一数据的关键组成部分却一直未得到足够的重视。一个主要问题是:我们如何保护 AI 模型中的数据不受偏见和操纵的影响&#xff1…

linux环境编程基础学习

Shell编程: 相对的chmod -x xx.sh可以移除权限 想获取变量的值要掏点dollar($) 多位的话要加个花括号 运算:expr 运算时左右两边必须要加空格 *号多个含义必须加转义符 双引号可以加反单,但是发过来就不行 …

企业微信,机器人定时提醒

场景: 每天定时发送文字,提醒群成员事情,可以用机器人代替 人工提醒。 1)在企业微信,创建机器人 2)在腾讯轻联,创建流程,选择定时任务,执行操作(企业微信机…

秋招突击——6/19——新作{括号生成、合并K个排序链表}

文章目录 引言新作括号生成个人实现实现时遇到的问题实现代码 参考思路实现代码 合并K个有序链表个人实现实现代码 参考实现实现代码 总结 引言 今天把第二篇论文投了,后续有审稿意见再说,然后在进行修改的。后续的生活要步入正轨了,每天刷题…

FreeRTOS源码分析

目录 1、FreeRTOS目录结构 2、核心文件 3、移植时涉及的文件 4、头文件相关 4.1 头文件目录 4.2 头文件 5、内存管理 6、入口函数 7、数据类型和编程规范 7.1 数据类型 7.2 变量名 7.3 函数名 7.4 宏的名 1、FreeRTOS目录结构 使用 STM32CubeMX 创建的 FreeRTOS 工…

Ubuntu服务器搭建Git远程仓库

本文所述方法适用于小型团队在局域网环境中使用Git进行代码版本管理。 1. 安装Git 打开终端(Ctrl + Alt + T) ,输入以下命令: sudo apt update #更新软件包列表信息 sudo apt install git #安装Git 验证Git是否安装成功,可以查看Git版本: git --version 也需…

shell中的流程控制

条件判断在流程控制中的重要性 有了条件判断才能进行if判断即分支流程,才能进行case的多分支流程,才能进行for循环和while循环。 单分支流程判断 如上图所示,在shell编程中常使用英文状态下的分号来在Linux控制台一次性执行多条命令&#x…

无线领夹麦克风哪个牌子好用?一文揭秘哪种领夹麦性价比最高!

​无线领夹麦克风,无疑是现代音频技术的杰出代表。它摆脱了传统有线麦克风的束缚,让声音的传播更加自由、灵活。无论是追求极致音质的音乐爱好者,还是需要高效沟通的商务人士,无线领夹麦克风都能满足你的需求,让你的声…

513、找二叉树左下角的值

题解:层序遍历简单,此篇记录递归法,要注意左下角的值并不一定是左叶子节点,遍历思路形象化就是按先左后右的顺序遍历每一条分支,若遍历到叶子结点,看此时深度有没有超过之前的值,超过了就记录下…

Jlink下载固件到RAM区

Jlink下载固件到RAM区 准备批处理搜索exe批处理调用jlink批处理准备jlink脚本 调用执行 环境:J-Flash V7.96g 平台:arm cortex-m3 准备批处理 搜索exe批处理 find_file.bat echo off:: 自动识别脚本名和路径 set "SCRIPT_DIR%~dp0" set &qu…

TIME_WAIT的危害

前言 该文章主要讨论下TIME_WAIT的存在意义和潜在危害,以及解决措施。 具体内容 首先看一下下面这幅图 这幅图来自《TCP IP详解卷1:协议 原书第2版中文》TCP状态变迁图。 TIME_WAIT存在意义 可靠的终止TCP连接。 保证让迟来的TCP报文有足够的时间被…

数据库 | 试卷四

1.数据库系统的特点是 数据共享、减少数据冗余、数据独立、避免了数据不一致和加强了数据保护 2.关系模型的数据结构是二维表结构 3.聚簇索引 cluster index 4. 这里B,C都是主属性,所以B->C不是非主属性对码的部分函数依赖 候选键(AC&a…

光电液位传感器在净水器领域的应用优势有哪些?

光电液位传感器作为一种先进的液位检测技术,在净水器领域有着显著的应用优势。具有高精度的特点,能够精确地检测水位变化,保证水处理过程的稳定性和效率。 传统的浮球式传感器可能存在精度偏差或者在长期使用中需要维护和更换的问题&#xf…

nginx+tomcat负载均衡、动静分离群集【☆☆☆☆☆】

Nginx是一款非常优秀的HTTP服务器软件,性能比tomcat更优秀,它支持高达50 000个并发连接数,拥有强大的静态资源处理能力,运行稳定,内存、CPU等系统资源消耗非常低。目前很多大型网站都应用Nginx服务器作为后端网站程序的…

机器学习课程复习——隐马尔可夫

不考计算题 Q:概率图有几种结构? 条件独立性的公式? 顺序结构发散结构汇总结构Q:隐马尔可夫模型理解? 概念 集合:状态集合、观测集合 序列:状态序列、观测序列

你不知道的MySQL备份和还原技巧,速来学习!

01、mysql备份数据库 1、mysql备份单个数据库 #mysql备份某个库格式: mysqldump -h主机名 -P端口 -u用户名 -p"密码" --database 数据库名 > 文件名.sql#实例:mysql备份某个库: mysqldump -h10.*.*.9 -P3306 -uroot -p"密…