0

0

java中的File文件操作及IO流内容的详细介绍

不言

不言

发布时间:2018-10-12 15:55:45

|

3048人浏览过

|

来源于博客园

转载

本篇文章给大家带来的内容是关于 java中的file文件操作及io流内容的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

前言

  1. 流是干什么的:为了永久性的保存数据。

  2. IO流用来处理设备之间的数据传输(上传和下载文件)

  3. java对数据的操作是通过流的方式。

  4. java用于操作流的对象都在IO包中。

    立即学习Java免费学习笔记(深入)”;

  5. java IO系统的学习,本质上就是对文件的读写操作。

File类

  1. java中使用File来抽象一个文件,无论是普通文件还是目录,都可应对与一个File对象。

  2. File只是抽象的代表来磁盘上的某个文件或者目录,内部实际上是依赖一个平台无关的本地文件系统类。

  3. File无法对其所表示的文件内容进行任何读写操作(那是流做的事情)。

  4. 成员方法:

    (1)创建功能:
        【1】public boolean createNewFile()
        【2】public boolean mkdir()
        【3】public boolean mkdirs()
    (2)删除功能:public boolean delete()
    (3)重命名功能:public boolean renameTo(File dest)
    (4)判断功能:
        【1】public boolean isDirectory()
        【2】public boolean isFile()
        【3】public boolean exists()
        【4】public boolean canRead()
        【5】public boolean canWrite()
        【6】public boolean isHidden()
    (5)获取功能:
        【1】public String getAbsolutePath()
        【2】public String getPath()
        【3】public String getName()
        【4】public long length()
        【5】public long lastModified()
    (6)高级获取功能:
        【1】public String[] list()
        【2】public File[] listFiles()

流的分类

  1. 根据数据流向的不同分为输入流和输出流。

  2. 根据处理数据类型的不同分为字节流和字符流:

(1)字符流:顾名思义,该流只能处理字符,但处理字符速度很快。
(2)字节流:可以处理所有以bit为单位存储的文件,也就是说可以处理所有的文件,但是在处理字符的速度上不如字符流。

  1. 字符流的抽象基类:

(1)Reader:字符输入流的抽象类,所有字符输入流的实现都是它的子类
(2)Writer:字符输出流的抽象类,所有字符输出类的实现都是它的子类

  1. 字节流的抽象基类:

    doxygen 官方手册
    doxygen 官方手册

    doxygen是一款好用的程序员辅助工具,它可以让程序添加批添代码更加简单轻松,兼容C++、 C、Java、 Objective-C、Python等主流编程语言,小编提供的doxygen中文手册包含了基本介绍、语法技巧以及进阶技巧等内容,可以让你快速上手操作,有需要的欢迎下载。 基本介绍 Doxygen已经支持生成ANSI编码的chm目录文件(index.hhc)!Doxygen通常是用作生成英文文档的,生成中文文档需要修改输入和输出的码制,这样可以改变解析方式,生成中文文档。但是,你必须意识 到,Dox

    下载

(1)InputStream:字节输入流的抽象类,是所有字节输入流的父类
(2)OutputStream:字节输出流的抽象类,是输出字节流的所有类的超类

  1. 字符流Reader派生的子类:

    (1)CharArrayReader
    (2)BufferedReader/LineNumberReader
    (3)FilterReader
    (4)InputStreamReader/FileReader
  2. 字符流Writer派生的子类:

    (1)BufferedWriter
    (2)CharArrayWriter
    (3)FilterWriter
    (4)OutputStreamWriter/FileWriter
    (5)PrintWriter
    (6)StringWriter
  3. 字节流InputStream派生的子类

    (1)FileInputStream
    (2)ObjectInputStream
    (3)FilterInputStream/BufferedInputStream/DataInputStream/PushbackInputStream
    (4)SequenceInputStream
    (5)ByteArrayInputStream
    (6)StringBufferInputStream)
  4. 字节流OutputStream派生的类:

    (1)ByteArrayOutputStream
    (2)FileOutputStream
    (3)FilterOutputStream/BufferedOutputStream/DataOutputStream
    (4)ObjectOutputStream

优化读写:字节缓冲流

  1. 字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多。这是加入了数组这样的缓冲区效果。

  2. 文件字节输入流的读取时,是直接同字节流中读取的。

  3. 由于字节流是与硬件(存储介质)进行的读取,所以速度较慢。

  4. 而cpu需要使用数据时通过read()、read(byte[])读取数据时就要受到硬件IO的慢速度限制。

  5. cpu与内存发生的读写速度比硬件IO快10倍不止,那么就可以在内存建立缓冲区优化。

  6. 优化读写的思路:

(1)在内存中建立缓冲区
(2)先把存储介质中的字节读取到缓冲区
(3)cpu需要数据时直接从缓冲区读取
(4)缓冲区要足够大,在被读完后又触发fill()函数自动从存储介质的文件字节内容中读取字节存储到缓冲区数组。

转换流

  1. 转换流是字节流通向字符流的桥梁,可以将字节流转换为字符流。

  2. 原理就是在字节流的基础上增加了编解码的操作。

  3. 字符流 = 字节流 + 编码表

  4. FileReader、FileWriter其实底层都是字节流,只不过额外的配置一个编码器、解码器,底层用字节读数据通过解码器转换成字符,或通过编码器将字符转换为字节再输出。

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

336

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

224

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

138

2026.02.12

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

336

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

224

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

138

2026.02.12

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

336

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

224

2025.10.31

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

4

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 4.3万人学习

C# 教程
C# 教程

共94课时 | 11万人学习

Java 教程
Java 教程

共578课时 | 80万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号