Java I/O流简单详解

目录

1.初认Java I/O

1.1Java I/O流的分类

1.输入流和输出流

 2.字符流和字节流

3.节点流和处理流

2.I/O流对象

2.1 File类

        File类的常用方法

2.2  字节流

2.2.1 字节输出流

2.2.2  字节输入流

2.3 字符流

2.3.1 字符输入流

2.3.2  字符输出流 

2.3.3 字符缓冲流

2.3.3.1 BufferedWriter类

2.3.3.2 BufferReader类:

2.4 数据操作流

2.5 序列化与反序列化

2.5.1 序列化 Serializable

2.5.2 反序列化


1.初认Java I/O

IO,即inout,也就是输入和输出,指应用程序和外部设备之间的数据传递。

Java 中是通过流处理I/O 的,那么什么是流?

流(Stream),是指一连串的数据(字符或字节),是以先进先出的方式发送信息的通道。

当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。

一般来说关于流的特性有下面几点:

先进先出:最先写入输出流的数据最先被输入流读取到。
顺序存取:可以一个接一个地往流中写入一串字节,读出时也将按写入顺序读取一串字节,不能随机访问中间的数据。
只读或只写:每个流只能是输入流或输出流的一种,不能同时具备两个功能,输入流只能进行读操作,对输出流只能进行写操作。在一个数据传输通道中,如果既要写入数据,又要读取数据,则要分别提供两个流。
 

1.1Java I/O流的分类

I/O流的分类分为三种:

                1.按流向划分:输入流和输出流

                2.按处理单元划分:字节流和字符流

                3.按流的角色划分:节点流和处理流

1.输入流和输出流

输入与输出是相对于程序,读取文件是输入流,书写文件是输出流,两者容易混淆。

 2.字符流和字节流

字节流和字符流操作几乎一样,区别在于字节流以8位字节为操作数据单元,操作二进制数据,字符流以16位字节为操作数据单元,操作文本数据。

3.节点流和处理流

节点流:也称为包装流:可以直接向一个特定的存储介质(如磁盘、文件)读写数据的流。使用节点流进行读写数据操作时,程序直接连接到数据源

处理流:对已存在的流进行连接和封装,通过封装后的流实现数据读写操作的流。使用处理流进行读写操作时,程序并不会直接连接到实际的数据源

2.I/O流对象

2.1 File类

        File类是java.io包下代表操作与平台无关的文件和目录的类,用于实现对文件或目录的新建、删除、重命名等操作。

File file=new File("D:\\test.txt"//填写物理文件路径);
                               //在填写路径在文件名与文件名之间必须有两个反斜杠'\'
                               //第一个反斜杠'\'表示反编译

        这是创建文件对象,在之后通过文件对象的方法,来操作文件或目录的属性(路径、权限、日期和时间等)

        File类的常用方法
方法 描述
boolean createNewFile() 创建新文件
boolean delete() 删除文件
boolean exists() 判断文件是否存在
Boolean isFile() 判断是否是文件
boolean isDirectory() 判断是否是目录
long length() 返回文件长度,单位为字节 若文件不存在,则返回0L
String getPath() 返回此对象文件名所对应的路径
String getAbsolutePath() 返回此对象表示的文件的绝对路径名 

        常用方法示例


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值