Java---文件,流✨❤️

文章目录

    • 1.遍历文件夹
    • 2.遍历子文件夹
    • 3.练习流
    • 4.以字节流的形式读取文件内容
    • 5.以字节流的形式向文件写入数据顶折纠问
    • 6 .写入数据到文件

1.遍历文件夹

一般说来操作系统都会安装在C盘,所以会有一个 C:\WINDOWS目录。
遍历这个目录下所有的文件(不用遍历子目录)
找出这些文件里,最大的和最小(非0)的那个文件,打印出他们的文件名
注: 最小的文件不能是0长度

package Basic.wordhard;

import java.io.File;

public class Demo {
    public static void main(String[] args) {
        File f=new File("C:\\Windows");
        // 以文件数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
        File fs[]=f.listFiles();
        File max_file = null,min_file=null;
        long min=Long.MAX_VALUE;
        long max=0;
        for(File e:fs){
            if(e.length()>max){
                max=e.length();
                max_file=e;
            }
            if(e.length()!=0&&e.length()<min){
                min=e.length();
                min_file=e;
            }
        }
        System.out.println("找出的最大文件为"+max_file.getName()+"    文件大小"+max);
        System.out.println("找出的最小文件为"+min_file.getName()+"    文件大小"+min);
        }
}

在这里插入图片描述

2.遍历子文件夹

同上的练习,要求遍历子文件夹

package Basic.wordhard;
import java.io.File;
public class Demo {
    static File minFile = null;
    static File maxFile = null;
    public static void main(String[] args) {
        File dir = new File("C:\\WINDOWS");
        traverseFolder(dir);

        if (minFile != null) {
            System.out.println("最小的文件是 " + minFile.getName() + ",其大小是 " + minFile.length() + " 字节");
        }
        if (maxFile != null) {
            System.out.println("最大的文件是 " + maxFile.getName() + ",其大小是 " + maxFile.length() + " 字节");
        }
    }
    public static void traverseFolder(File dir) {
        File[] files = dir.listFiles();
        if (files == null || files.length == 0) {
            return;
        }
        for (File file : files) {
            if (file.isFile()) {
                if (minFile == null || (file.length() < minFile.length() && file.length() != 0)) {
                    minFile = file;
                }
                if (maxFile == null || file.length() > maxFile.length()) {
                    maxFile = file;
                }
            } else if (file.isDirectory()) {
                traverseFolder(file);
            }
        }
    }
}

在这里插入图片描述

3.练习流

当不同的介质之间有数据交互的时候,JAVA就使用流来实现。
数据源可以是文件,还可以是数据库,网络甚至是其他的程序
比如读取文件的数据到程序中,站在程序的角度来看,就叫做输入流
输入流: InputStream
输出流:OutputStream

题目:建立一个文件输入流

package Basic.wordhard;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) {
        try{
            File f=new File("D://lol.txt");
            FileInputStream fis=new FileInputStream(f);
            // 通过这个输入流,就可以把数据从硬盘,读取到Java的虚拟机中来,也就是读取到内存中
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

4.以字节流的形式读取文件内容

InputStream是字节输入流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileInputStream 是InputStream子类,以FileInputStream 为例进行文件读取

package Basic.wordhard;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) {
        try{
            File f=new File("d://lol.txt");
            FileInputStream fis=new FileInputStream(f);
            byte array[]=new byte[(int) f.length()];
            fis.read(array);
            for(byte e:array){
                System.out.println(e);
            }
            fis.close();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

5.以字节流的形式向文件写入数据顶折纠问

OutputStream是字节输出流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileOutputStream 是OutputStream子类,以FileOutputStream 为例向文件写出数据
注: 如果文件d:/lol2.txt不存在,写出操作会自动创建该文件。
但是如果是文件 d:/xyz/lol2.txt,而目录xyz又不存在,会抛出异常

package Basic.wordhard;

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

public class Demo {
    public static void main(String[] args) {
        try{
            File f=new File("D:\\lol2.txt");
            FileOutputStream fos=new FileOutputStream(f);
            byte Date[]={97,98};
            fos.write(Date);
            fos.close();
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

6 .写入数据到文件

以字节流的形式向文件写入数据 中的例子,当lol2.txt不存在的时候,是会自动创建lol2.txt文件的。
但是,如果是写入数据到d:/xyz/lol2.txt,而目录xyz又不存在的话,就会抛出异常。
那么怎么自动创建xyz目录?
如果是多层目录 d:/xyz/abc/def/lol2.txt 呢?

package Basic.wordhard;

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

public class Demo {
    public static void main(String[] args) {
        try{
            File f=new File("d:/xyz/abc/def");
            if(!f.exists()){
                f.mkdirs();
            }
            byte data[]={97,98};
            File f1=new File(f,"lol2.txt");
            FileOutputStream fos=new FileOutputStream(f1);
            fos.write(data);
            fos.close();
        }catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}


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

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

相关文章

全栈入门,前后端入门--springboot3+vue3制作一个后台管理项目

一&#xff1a;前言 1&#xff1a;因为本人也是全栈初学者&#xff0c;现在主职是公司前端&#xff0c;鉴于当前行业形式&#xff0c;单单只掌握一门语言已经不再吃香&#xff0c;甚至有点危险&#xff0c;35岁危机极大可能提前。作为00后要始终保持危机意识&#xff0c;不至于…

[C++]使用纯opencv去部署yolov9的onnx模型

【介绍】 部署 YOLOv9 ONNX 模型在 OpenCV 的 C 环境中涉及一系列步骤。以下是一个简化的部署方案概述&#xff0c;以及相关的文案。 部署方案概述&#xff1a; 模型准备&#xff1a;首先&#xff0c;你需要确保你有 YOLOv9 的 ONNX 模型文件。这个文件包含了模型的结构和权…

opencv生成一张图片

opencv也可以创造出一张照片&#xff0c;下面就是创造一张照片&#xff0c;并存放到项目文件夹下的示例 #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> #include <vector> using namespace cv…

sql注入之sqli-labs-less-2 数值型报错注入

输入?id1 进行试探,第二关数值型&#xff0c;没有字符串的单引号&#xff0c;所以输入单引号报错&#xff0c; 经试探?id1 order by 5 -- 如果是错误的数值&#xff0c;显示如下&#xff1a; 正确 的为&#xff1a; ?id1 order by 3 -- 进行注入查看回显点&#xff1a; …

个体工商户营业执照怎么在网上年检?

第一步PC端登录国家企业信用信息公示系统&#xff01; 第二步点企业信息填报&#xff01; 第三步选择省份&#xff01; 第四步登陆方式&#xff01; 第五步点左上角年度报告填写&#xff01; 第六步下滑浏览点确认&#xff01; 第七步按照实际情况填写&#xff01; 第八步…

Linux笔记--文件权限

一、相关概念 Linux最优秀的地方之一就在于多人多任务环境。为了让各个使用者有较为保密的文件数据&#xff0c;文件的权限管理尤为重要。 ●文件的可存取身份: owner:文件拥有者 group:文件所属用户组 others:其他人 ●文件权限: r: read&#xff0c;读 文件:是否能查看文件内…

代码随想录刷题笔记 DAY 41 | 整数拆分 No.343 | 不同的二叉搜索树 No.96

文章目录 Day 4101. 整数拆分&#xff08;No. 343&#xff09;<1> 题目<2> 笔记<3> 代码 02. 不同的二叉搜索树&#xff08;No. 96&#xff09;<1> 题目<2> 笔记<3> 代码 Day 41 01. 整数拆分&#xff08;No. 343&#xff09; 题目链接 …

2024.3.1 小项目

1、机械臂 #include <myhead.h> #define SER_IP "192.168.125.32" //服务器端IP #define SER_PORT 8888 //服务器端端口号#define CLI_IP "192.168.68.148" //客户端IP #define CLI_PORT 9999 /…

Mybatis plus扩展功能-Db静态工具

目录 1 前言 2 使用方法 2.1 Db静态工具拥有的部分方法 2.2 举例 1 前言 在我们的服务层中&#xff0c;有时为了实现一个方法需要引入其它的Mapper层方法&#xff0c;但是&#xff0c;这样可能出现循环依赖。虽然Spring已经给我们解决了简单的循环依赖问题&#xff0c;但是…

【书生·浦语大模型实战营】第4节 课后作业

XTuner 大模型单卡低成本微调实战 0. 课程链接1. 课后作业1.2 进阶作业 0. 课程链接 课程链接&#xff1a;https://github.com/InternLM/tutorial/blob/main/xtuner/README.md 1. 课后作业 构建数据集&#xff0c;使用 XTuner 微调 InternLM-Chat-7B 模型, 让模型学习到它是你…

数字化转型导师坚鹏:证券公司数字化思维升级之道

证券公司数字化思维升级之道 ——数字化思维之六脉神剑 课程背景&#xff1a; 很多证券公司存在以下问题&#xff1a; 不知道数字化转型如何改变思维模式&#xff1f; 不清楚需要建立什么样的数字化思维&#xff1f; 不知道如何开展数字化思维提升工作&#xff1f; 课…

Redis小白入门教程

Redis入门教程 1. Redis入门1.1 Redis简介1.2 Redis服务启动与停止1.2.1 Redis下载1.2.2 服务启动命令1.2.3 客户端连接命令1.2.4 修改Redis配置文件 2. Redis数据类型2.1 五种常用数据类型介绍2.1.1 字符串操作命令2.1.2 哈希操作命令2.1.3 列表操作命令2.1.4 集合操作命令2.1…

JWT的原理与隐患

什么是JWT JWT通常由三部分组成&#xff1a;头信息&#xff08;header&#xff09;, 消息体&#xff08;payload&#xff09;和签名&#xff08;signature&#xff09;。 头信息指定了该JWT使用的签名算法 header {"alg":"HS256","typ":"…

9.8分割等和子集(LC416-M)

算法&#xff1a; 可以转换为背包问题&#xff1a; 一个商品如果可以重复多次放入是完全背包&#xff0c;而只能放入一次是01背包&#xff0c;写法还是不一样的。 要明确本题中我们要使用的是01背包&#xff0c;因为元素我们只能用一次。 只有确定了如下四点&#xff0c;才能…

C++_程序流程结构_循环结构_while

while循环结构 作用 满足循环条件&#xff0c;执行循环语句 语法 while (循环条件&#xff09;{循环语句}解释 只要循环条件的结果为真&#xff0c;就执行循环语句 流程图 示例 注意 在执行循环语句时候&#xff0c;程序必须提供跳出循环的出口&#xff0c;否则出现死循…

B083-SpringCloud-eureka ribbon feign hystrix

目录 eureka基础项目准备注册中心的搭建生产者注册到eureka消费者注册到eureka并通过eureka调用生产者eureka集群 服务提供者集群集群以后消费者调用服务的问题ribbon消费者使用ribbon负载均衡赋值负载均衡策略负载均衡优化 feignHystrixHystrix概述Ribbon搭配Hystrix降级处理F…

springboot+vue学生信息管理系统学籍 成绩 选课 奖惩,奖学金缴费idea maven mysql

技术栈 ide工具&#xff1a;IDEA 或者eclipse 编程语言: java 数据库: mysql5.7 框架&#xff1a;ssmspringboot都有 前端&#xff1a;vue.jsElementUI 详细技术&#xff1a;springbootSSMvueMYSQLMAVEN 数据库工具&#xff1a;Navicat/SQLyog都可以学生信息管理系统主要实现角…

★【递归】【链表】Leetcode 21. 合并两个有序链表

★【递归】【链表】Leetcode 21. 合并两个有序链表 解法1 &#xff1a;递归链表 简直是好题啊好题多做做 ---------------&#x1f388;&#x1f388;题目链接&#x1f388;&#x1f388;------------------- 解法1 &#xff1a;递归链表 简直是好题啊好题多做做 >>>…

解决Excel客户端中的Copilot灰色不可用

很多小伙伴已经用上了office套件中的copilot功能 Copilot for Microsoft 365账号介绍与相关问题的解答 Copilot for Microsoft 365账号登录指南 Copilot for Microsoft 365功能使用指南 问题发现 大部分人使用的都是Word和PowerPoint功能&#xff0c;但是也有部分小伙伴使…

(学习日记)2024.03.03:UCOSIII第五节:常用汇编指令+OS初始化+启动任务+任务切换

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…