首页 > 编程语言 >Java中的文件IO

Java中的文件IO

时间:2024-07-04 13:27:48浏览次数:19  
标签:文件 存储 Java 操作系统 二进制 文件系统 IO 硬盘

文件,我们之前在C语言中接触过,是在硬盘上存储数据的方式,操作系统帮我们把硬盘的一些细节都封装起来了,因此在这里我们只需要了解文件的相关接口即可.

首先硬盘是用来存储数据的,和内存相比,硬盘的存储空间更大,访问速度更慢,成本更低,可以实现持久化存储,而操作系统通过"文件系统"这样的模块来管理硬盘.

实际上在我们的电脑中只有一个硬盘(我这里加了一块,所以我有两块)操作系统可以通过文件系统吧这个硬盘抽象成多个硬盘一样(其实CDE盘就是操作系统通过文件系统锁划分出来的) 

NTFS是Windows上的文件系统,背后有一定的格式来组织硬盘的数据 

EXT4是Linux上常见的文件系统,虽然说有不同的文件系统,但是其管理文件的方式都是类似的,那么文件在系统中是一个什么样的结构呢?

答:通过目录(也就是我们口头说的文件夹)-文件构成了"N叉树"的树形结构.

我们可以看到,同样是一个cat.jpg的文件,站在不同的基准目录上,查找的路径是不相同的

文件系统上存储的文件,具体来说又分成两个大类.

1.[文本文件]存储的是字符,字符通常采用utf-8来编码,utf8就是一个大表,这个表上的数据组合就可以称为是字符

2.[二进制文件]存储的是二进制的数据

那我们如何判断一个文件是文本文件还是二进制文件呢?其实也很简单,用记事本打开,你能看懂的就是文本文件,若是乱码,则就是二进制文件

后续针对文件的操作,文本和二进制,操作方式是完全不同的

文件系统操作

首先要声明一个视角问题

IO:其实是input和output,你是站在cpu的角度来看待输入输出的

在Java中,我们可以通过java.io.file,通过file对象来描述一个具体的文件.file对象可以对应到一个真实存在的文件,也可以对应到一个不存在的文件

站在操作系统的角度看待,目录也是文件,操作系统中的文件是一个更广义的概念,具体来说里面有很多种不同的类型

1.普通文件(通常见到的文件)

2.目录文件(通常见到的文件夹)

windows上目录之间的分隔符,可以使用/也可以使用\,Windows诞生之前,表示目录的分隔符都是用 / Windows前身是dos.Linux和Mac就只是支持 / ,所以及时是在Windows,也尽量使用/,使用\在代码中需要搭配转义字符

运行结果如下

上述创建文件我们是使用了一个绝对路径,差别不是那么特别大,接下来我们使用相对路径来创建一个文件

标签:文件,存储,Java,操作系统,二进制,文件系统,IO,硬盘
From: https://blog.csdn.net/X_HJJ/article/details/140176822

相关文章

  • JUC(java.util.concurrent)的常见类
    JUC(java.util.concurrent)的常见类Callable(这是一个interface接口)这个也是创建线程的一种方式Runnable能表示一个任务(run方法)返回:voidCallable也能表示一个任务(call方法)返回:一个具体的值,类型可以通过泛型参数来指定(Object)如果进行多线程操作,只是关心多线......
  • Java 中的字符串替换方法详解:replace, replaceAll 和 replaceFirst
    在Java中,字符串的替换是一种常见的操作,特别是在处理文本和格式化输出时。Java提供了几种不同的方法来实现字符串替换,其中包括replace,replaceAll和replaceFirst。本文将详细讨论这些方法的用法、区别以及示例。1.replace(CharSequencetarget,CharSequencereplaceme......
  • javascript url 传递参数中文乱码问题解决方案
    在JavaScript中,传递URL参数时,如果参数包含中文字符,可能会出现乱码问题。解决这一问题可以使用encodeURIComponent和decodeURIComponent函数。这些函数会对URL参数进行编码和解码,确保特殊字符(包括中文字符)能够被正确传递和解析。以下是一个完整的解决方案示例: 1.......
  • selenium16_文件上传
    inupt标签可以直接通过send_keys上传文件非input标签,AutoIt上传1.安装AutoIt2.AutoIt菜单介绍SciTEScriptEditor编辑器,用于编写AutoIt脚本AutoItWindowsInfo元素定位器,用于识别Windows控件信息RunScript执行AutoIt脚本CompileScriptto.exe将AutoIt生成可执行文件......
  • Windows Server2022怎么做文件共享?
    一、共享设置1、在打开的“服务器管理器”仪表板中,点击左侧菜单栏中的“文件和存储服务”-->“共享” 新建共享,我们这里使用“SMB共享-快速”、如果需要也可以使用“SMB共享-高级”两者各有侧重,看自己的实际需要:选择要共享的文件夹位置: 设置共享权限比较重要,我们要禁用......
  • JAVA基础:包的概念和使用
    目录package关键字1,包的概念2,包的定义格式3,包的特点import关键字1,导包的意义2,导包的格式3,注意事项package关键字1,包的概念包其实就是一个一个的文件夹,这些文件夹里放着Java中各种各样的类。在开发中会出现多个开发人员共同开发同一个项目的情况,这时肯定就会出现类......
  • 基于Java+Jsp Struts Mysql实现的图书馆管理系统设计与实现
    一、前言介绍:1.1项目摘要随着信息技术的飞速发展,传统图书馆的管理方式已经难以满足现代读者的需求。传统的图书馆管理方式通常依赖于人工操作,如图书的借阅、归还、分类、编目等,这些过程不仅效率低下,而且容易出错。同时,随着图书馆藏书量的不断增加,如何有效地管理这些图书......
  • 基于Java+Jsp+Springmvc+Mybatis3+Mysql实现的SSM个人博客系统设计与实现
    一、前言介绍:1.1项目摘要随着互联网技术的快速发展和普及,个人博客作为一种表达自我、分享知识和经验的方式,受到了越来越多人的青睐。传统的博客平台虽然提供了丰富的功能和便捷的服务,但往往难以满足个性化、定制化的需求。因此,开发一款基于SSM(Spring+SpringMVC+MyBat......
  • 功能强大的采样器软件Togu Audio Line TAL-Sampler 4.6.1
    ToguAudioLineTAL-Sampler是一个用于创建和播放模仿经典采样器声音的样本的程序。使用TAL采样器,您可以下载和编辑任何音频文件,应用各种效果和调制,设置合成和音序器参数等等。TAL采样器支持VST格式,适用于从XP到10的所有Windows版本。以下是东固音频线TAL采样器的一些功能:......
  • 【社招+校招】华为OD机试 - 运维日志排序(Java & JS & Python & C)
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)运维日志排序算法实现(Java、JavaScript、Python、C、C++)算法概述运维日志......