文件与 IO

server/2024/10/24 3:59:11/

一、文件

        在计算机系统中,文件是一种基本的数据管理单位,它是存储在计算机存储介质上的信息集合,包括但不限于文本、图片等形式。

        文件除了数据内容以外,还有一部分信息,如文件名、文件类型、文件大小等文件的元信息。

目录(文件夹)

        目录是一种专门用来存放和管理信息的特殊文件,将文件按照层级结构进行组织——树形结构

文件路径(Path)

绝对路径(absolute path):从根节点一直到达某一节点的路径描述。

相对路径(relative path):从当前节点到达某一节点的路径描述。

文件类型

        根据保存数据的不同,我们可以将文件划分为文本文件和二进制文件,分别指代保存被字符集编码的文本和按照标准格式保存的非被字符集编码过的文件。

对于文本文件:

  • 在UTF-8 编码中,一个英文字母用一个字节表示,一个汉字用三个字节表示。
  • 在Unicode编码中,一个英文字母用一个字节表示,一个汉字用两个字节表示。

         在Windows操作系统中,会按照文件名中的后缀来确定文件类型以及该类型文件的默认打开程序。但是在OSX、Unix、Linux等操作系统中没有这样的习惯。

权限

        根据不同的用户,会赋予用户不同的对待该文件的权限,比如可读、可写、可执行权限。

二、文件操作——File类

        Java中通过 java.io.File 类来对一个文件进行抽象的描述。但是,有File对象不代表真实存在该文件。File 类的实例是不可变的,也就是说,一旦创建,由File对象表示的抽象路径名永远不会改变。

1.属性

2.构造方法

三、文件内容的读写——数据流

        字节流:InputStream、OutputStream

        字符流:Reader、Writer

利用try with resources语法避免文件资源泄露

        在 try 代码块结束的时候(无论是正常结束还是抛出异常),自动调用其中的close方法,但是要求写在()里的对象必须实现了Closeable接口。

java">try (Reader reader = new FileReder("d:/test.txt")) {while(true){char[] cbuf = new char[10];int n = reader.read(cbuf);if(n == -1)    break;for(int i = 0; i < n; i++) {System.out.println(cbuf[i]);}}
}


http://www.ppmy.cn/server/134342.html

相关文章

整理—Redis

目录 Redis底层的数据结构 ZSet用过吗 Zset 底层是怎么实现的 跳表是怎么实现的&#xff1f; Redis为什么使用跳表而不是用B树? 压缩列表是怎么实现的&#xff1f; Redis 中的 listpack 哈希表是怎么扩容的&#xff1f; String 是使用什么存储的 Redis为什么快&#xf…

【iOS】YYModel

目录 什么是YYModel &#xff1f; 如何使用YYModel &#xff1f; 最简单的Model 与网络请求结合 属性为容器类的Model 白名单和黑名单 Model的嵌套 结语 什么是YYModel &#xff1f; YYModel是一个用于 iOS 和 macOS 开发的高性能的模型框架&#xff0c;主要用于对象和…

基于PHP+MySQL+Vue的医院预约挂号管理系统

摘要 本文介绍了一个基于PHP、MySQL和Vue技术栈的医院预约挂号管理系统。该系统旨在优化患者就医流程&#xff0c;提高医院服务效率。后端采用PHP语言开发&#xff0c;利用MySQL数据库存储患者信息、医生排班、科室设置等核心数据&#xff0c;确保了数据的安全性和稳定性。前端…

大厂面试真题-了解云原生吗,简单说一下docker和k8s

K8s&#xff08;Kubernetes&#xff09;和Docker都是容器化技术中的关键组件&#xff0c;但它们各自扮演着不同的角色。以下是对这两者的详细解析&#xff1a; 一、Docker Docker是一个开源的容器化平台&#xff0c;它允许开发人员将应用程序及其依赖项打包为一个独立的镜像&…

基于Multisim的半导体三极管β值测量仪设计与仿真

设计一个自动测量三极管直流放大系数β值范围的装置。技术要求&#xff1a; 1.对被测NPN型三极管值分三档&#xff1b; 2.β值的范围分别为80&#xff5e;120及120&#xff5e;160&#xff0c;160&#xff5e;200对应的分档编号分别是1、2、3&#xff1b;待测三极管为空时显示…

etcd入门到实战

概述&#xff1a;本文将介绍etcd特性、使用场景、基本原理以及Linux环境下的实战操作 入门 什么是etcd&#xff1f; etcd是一个分布式键值存储数据库 关键字解析&#xff1a; 键值存储&#xff1a;存储协议是 key—value 的形式&#xff0c;类似于redis分布式&#xff1a;…

【AIGC】AI时代降临,AI文案写作、AI绘画、AI数据处理

目录 1、ChatGPTAI文案与写作108招2、AI短视频生成与剪辑实战108招3、AI绘画与摄影实战108招4、AI商业广告设计实战108招5、AI数据处理实战108招6、AI智能办公实战108招 传送门&#xff1a;清华大学出版社AI实战108招 全6册 1、ChatGPTAI文案与写作108招 《ChatGPTAI文案与写…

docker 同宿主机不同网络容器通信+跨宿主机容器之间网络互连详解

一 同宿主机不同网络容器通信 方法一&#xff1a;使用 Docker 网络连接 创建一个自定义桥接网络&#xff1a; 创建一个新的自定义桥接网络&#xff0c;然后将需要通信的容器连接到这个网络。docker network create my_custom_network 将容器连接到自定义网络&#xff1a; 将…