一文详解JAVA的File类,FileInputStream和FileOutputStream

目录

一、File类介绍

二、FileInputStream类

三、FileOutputStream类



一、File类介绍

Java的File类是用于操作文件和目录的类。它提供了一组方法来创建、删除、重命名、复制、移动文件和目录,以及查询文件和目录的属性。

File类的常用方法有:

  • exists():判断文件或目录是否存在。
  • isDirectory():判断当前File对象是否代表一个目录。
  • isFile():判断当前File对象是否代表一个文件。
  • getName():获取文件或目录的名称。
  • getPath():获取文件或目录的路径。
  • mkdir():创建单级目录。
  • mkdirs():创建多级目录。
  • delete():删除文件或目录。
  • renameTo(File dest):重命名文件或目录。
  • list():返回目录中的文件和子目录的名称数组。
  • length():获取文件的大小。
import java.io.File;

public class FileExample {
    public static void main(String[] args) {
        File file = new File("test.txt");
        
        if (file.exists()) {
            System.out.println("文件存在");
            if (file.isFile()) {
                System.out.println("是一个文件");
                System.out.println("文件名称:" + file.getName());
                System.out.println("文件路径:" + file.getPath());
                System.out.println("文件大小:" + file.length() + "字节");
            }
        } else {
            System.out.println("文件不存在");
        }
    }
}

上述代码创建了一个File对象,表示名为"test.txt"的文件。然后,通过调用File类的方法判断文件是否存在,以及文件的属性信息。

File类的方法只是对文件和目录进行操作,不涉及文件内容的读写。如果需要读写文件内容,可以使用Java的IO流类来实现。

二、FileInputStream类

Java的FileInputStream类是用于从文件中读取数据的类。它是InputStream类的子类,可以用于读取字节流数据。

FileInputStream类的构造函数可以接受一个文件名或文件对象作为参数,用于指定要读取的文件。它提供了一系列的read()方法,用于从文件中读取字节数据。

常用的FileInputStream类的方法包括:

  • read():从文件中读取一个字节的数据,并返回读取的字节。如果已读到文件末尾,则返回-1。
  • read(byte[] buffer):从文件中读取数据,并将读取的数据存入指定的字节数组buffer中。返回实际读取的字节数。
  • skip(long n):跳过指定的字节数。
  • available():返回文件中剩余可读取的字节数。
  • close():关闭文件输入流。
import java.io.FileInputStream;
import java.io.IOException;

public class FileInputStreamExample {
    public static void main(String[] args) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("test.txt");
            int data;
            while ((data = fis.read()) != -1) {
                System.out.print((char) data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

三、FileOutputStream类

Java的FileOutputStream类用于将数据写入文件中。它是OutputStream类的子类,可以用于写入字节流数据。FileOutputStream类的构造函数可以接受一个文件名或文件对象作为参数,用于指定要写入的文件。它提供了一系列的write()方法,用于写入字节数据到文件中。

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

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

相关文章

QT上位机开发(知识产权ip保护)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 大部分看我们文章的网友,本身就是搞技术出身的,很少是做生意,或者是做销售的。但是技术本身,它又是…

一款 StarRocks 客户端工具,支持可视化建表、数据编辑

什么是 StarRocks? StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。 为了…

代码随想录 Leetcode383. 赎金信

题目&#xff1a; 代码&#xff08;首刷自解 2024年1月15日&#xff09;&#xff1a; class Solution { public:bool canConstruct(string ransomNote, string magazine) {vector<int> v(26);for(auto letter : magazine) {v[letter - a];}for(auto letter : ransomNote…

腾讯云价格怎么这么便宜?

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

Jmeter 压测 —— 性能调优5大注意!

性能调优主要涉及这些方面&#xff1a; 代码、数据库、网络、硬件、系统构架 1、代码 ①缓存 缓存是典型的空间换时间&#xff0c;在软件项目中&#xff0c;用的最多的是redis缓存&#xff0c;第一次查询的时候&#xff0c;将查询数据存储到缓存中。后面每次查询&#xff0…

圆通单号查询,圆通速递物流查询,用表格导出详细物流信息

大多数平台的物流信息只能在线查看&#xff0c;无法直接导出。而我们【快递批量查询高手】软件在支持批量查询多个快递单号物流信息的同时&#xff0c;还提供了强大的信息导出功能。你可以选择导出信息的表格格式&#xff0c;如CSV、Excel等&#xff0c;方便你在其他地方进行查…

目标检测中的数据增强

整个代码参考:bubbliiiing/object-detection-augmentation。 random_data.py import cv2 import numpy as np from PIL import Image, ImageDrawdef rand(a=0, b=1):return np.random.rand()*(b-a) + adef get_random_data(annotation_line, input_shape, jitter=.3, hue=.1…

五、mysql8忘记root用户密码怎么办?怎么修改用户密码?

目录 1、忘记密码怎么修改密码 1&#xff09;、首先停止mysql的服务 2&#xff09;、新建一个文本文件&#xff0c;文本文件中就写一条修改密码的语句 3&#xff09;、使用管理员权限运行cmd命令行&#xff0c;运行以下命令&#xff1a; 4&#xff09;、然后按CTRLC结束上…

基于springboot的流浪动物救助管理系统

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1研究背景 随着…

网络安全|GitHub 已成为恶意软件传播的严重污染源

Recorded Future 凸显了全球合法平台威胁的上升。 根据 Recorded Future最近 的一份报告&#xff0c;开发者平台GitHub最近已成为黑客用来托管和传播恶意软件的流行工具。 该平台为攻击者提供了将其行为伪装成合法网络流量的能力&#xff0c;这使得跟踪和确定攻击者的身份变得…

7.2 数据库表操作

7.2 数据库表操作 1. 提要2. 逻辑库和数据表操作2.1 SQL简介2.2 逻辑库(数据库)_创建查询删除2.3 数据表简单操作2.4 修改表结构 3. 数据类型和约束3.1 范式(规则)3.2 字段约束 4. 索引运行机制和使用原则(重要)4.1 创建索引4.2 索引的修改4.3 索引的使用原则 5. 总结 1. 提要 …

RK3568驱动指南|驱动基础进阶篇-进阶5 自定义实现insmod命令实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

如何应对Android面试官->我用RecyclerView实现了吸顶效果

前言 RecyclerView 计划用两个章节来讲解&#xff0c;今天主要是以 itemDecoration 和 实现吸顶效果为主&#xff1b; ItemDecoration ItemDecoration 允许应用给具体的 View 添加具体的图画或者 Layout 的偏移&#xff0c;对于绘制 View 之间的分割线&#xff0c;视觉分组边…

高并发IO底层原理

1 概述 IO底层原理是隐藏在Java编程知识之下的基础知识&#xff0c;是开发人员必须掌握的基本原理。本文从操作系统的底层原理入手&#xff0c;通过图文的方式为大家深入剖析高并发IO的底层原理&#xff0c;并介绍如何通过设置来让操作系统支持高并发。 2 IO读写的基本原理 为…

超声波清洗机真有用吗?眼镜党需注意!别被错误洗眼镜方法误导

超声波清洗机洗眼镜真的有用吗&#xff1f;眼镜党朋友一定要注意了&#xff0c;眼镜清洗可不能有一点马虎的哈&#xff01; 眼镜是很多人日常生活中不可或缺的用品&#xff0c;然而清洁眼镜却是一个让人头疼的问题。随着科技的发展&#xff0c;超声波清洗机作为一种新兴的清洁…

pycharm Terminal命令行设置默认是Windows Powershell运行报错怎么修改?

目录 1. 真实案例 2. 如何做 3. 流程 3.1. 打开 settings 3.2. 在 最上方搜索 terminal 3.3. 在 shell path 里选择 cmd&#xff0c;并点击 OK 3.4. 重新打开 terminal 就成功了 1. 真实案例 使用 Windows Powershell 运行部分命令会不显示 2. 如何做 需要修改底部默认…

联系客服功能+定位功能+图片上传功能

功能一、联系客服 小程序开发的时候都会配备有类似于一个电话的悬浮按钮,比如: 这就是一个联系客服的功能,说白了就是打电话-----调用自己的电话功能进行拨打,具体代码实现 <!-- 点击拨打电话 --> makePhone: function (e) {var that this;var mobile e.currentTarget…

jmeter--常用插件及服务器监控(14)

一.jmeter插件管理器 下载jmeter插件管理器&#xff1a;plugins-manager.jar 下载plugins-manager.jar并将其放入lib/ext目录&#xff0c;然后重启JMeter。 插件管理界面 打开选项->Plugins Manager&#xff08;界面见下图&#xff09;&#xff0c;“Installed Plugns”…

discord音乐机器人

Discord音乐机器人是一种可以在Discord平台上使用的自动播放音乐的机器人。这些机器人可以连接到各种音乐源&#xff0c;如YouTube、SoundCloud和Spotify等&#xff0c;并根据用户的请求播放音乐。 Discord音乐机器人具有以下特点&#xff1a; 自动播放音乐&#xff1a;Disco…

友思特分享丨高精度彩色3D相机:开启崭新的彩色3D成像时代

来源&#xff1a;友思特 机器视觉与光电 友思特分享丨高精度彩色3D相机&#xff1a;开启崭新的彩色3D成像时代 原文链接&#xff1a;https://mp.weixin.qq.com/s/vPkfA5NizmiZmLiy_jv3Jg 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 3D成像的新时代 近年来&#…