java IO知识点

java IO(Input/Output)是Java平台中的重要组成部分,用于处理不同数据源和目标之间的数据传输。

对于程序来说:输入是读,输出是写。

以下是Java IO的一些关键知识点:
一、流的分类:
        1、按流向分:输入流(Input Stream)和输出流(Output Stream)
        2、按数据类型分:字节流(Byte Stream)和字符流(Character Stream)
                2.1、字节流:InputStream 和 OutputStream 家族,处理单个字节的数据,如                                         FileInputStream 和 FileOutputStream
                2.2、字符流:Reader 和 Writer 家族,处理Unicode字符,如 FileReader 和 FileWriter
        3、按功能分:节点流(处理特定数据源或目标)和处理流(处理其他流,提供额外功能)
                3.1、节点流:直接连接到数据源或目的地,如FileInputStream
                3.2、处理流:用于包装其他流,提供过滤、转换等功能,如BufferedInputStream


二、File类:
        1、表示文件和目录路径名的抽象表示
        2、提供文件和目录的基本操作,如创建、删除、重命名等


三、流的层次结构:
        1、InputStream 和 OutputStream 是所有字节输入和输出流的基类
        2、Reader 和 Writer 是所有字符输入和输出流的基类
        3、具体的子类如 FileInputStream 和 FileReader 分别继承自对应的基类,并添加了针对文件的操作

四、缓冲流(Buffered Streams):
        1、提高性能,通过内部缓冲区批量处理数据
        2、如 BufferedInputStream 和 BufferedReader

五、转换流(Wrapper Streams):
        1、用于将字节流转换为字符流,或者反之
        2、如 InputStreamReader 和 OutputStreamWriter

六、对象序列化流(Object Streams):
        1、对象可以被序列化到流中,如 ObjectOutputStream 和 ObjectInputStream
        2、支持对象的持久化和网络传输

七、数据流(Data Streams):
        1、处理基本数据类型的流,如 DataInputStream 和 DataOutputStream
        2、支持read/write primitive Java数据类型


八、字符编码与解码:
        1、字符流使用字符编码,如UTF-8,GBK等
        2、InputStreamReader 和 OutputStreamWriter 可以指定字符集

九、管道流(Piped Streams):
        用于线程间的通信,允许一个线程写入数据,另一个线程读取数据

十、过滤流(Filter Streams):
        1、提供额外的功能,如检查、压缩、加密等
        2、如 FilterInputStream 和 FilterReader

十一、文件系统操作:
        File类提供了文件和目录的创建、删除、重命名以及获取文件属性的方法

十二、NIO(New IO):
        从Java 1.4开始引入,提供了非阻塞I/O操作,基于通道(Channels)和选择器(Selectors)

十三、异步与同步,阻塞与非阻塞:
        1、同步I/O操作会等待数据准备好后才返回
        2、异步I/O操作在数据准备好前就返回,通常通过回调或事件通知
        3、阻塞I/O会挂起线程直到数据可用
        4、非阻塞I/O允许线程在数据未准备好时继续执行其他任务

十四、Java中的目录

        1、创建目录:

                File类中有两个方法可以用来创建文件夹:

                        mkdir( )方法创建一个文件夹,成功则返回true,失败则返回false。失败表明File对象指定的路径已经存在,或者由于整个路径还不存在,该文件夹不能被创建。

                         mkdirs()方法创建一个文件夹和它的所有父文件夹。

                注意: Java 在 UNIX 和 Windows 自动按约定分辨文件路径分隔符。如果你在 Windows 版本的 Java 中使用分隔符 (/) ,路径依然能够被正确解析。

        2、读取目录

                2.1、一个目录其实就是一个 File 对象,它包含其他文件和文件夹。

                2.2、如果创建一个 File 对象并且它是一个目录,那么调用 isDirectory() 方法会返回                         true。

                2.3、可以通过调用该对象上的 list() 方法,来提取它包含的文件和文件夹的列表。

        3、删除目录或文件

                3.1、删除文件可以使用 java.io.File.delete() 方法。

                3.2、以下代码会删除目录 /tmp/java/,需要注意的是当删除某一目录时,必须保证该目录下没有其他文件才能正确删除,否则将删除失败。

这些是Java IO的基础知识点,理解这些概念对于编写涉及文件操作、网络通信或数据传输的Java程序至关重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值