Java写入磁盘阵列_java-IO操作简介

流:字节流和字符流

字节流:处理二进制数据,用于处理原始数据,不应该用来处理文本内容

字符流:处理字符数据,自动转换本地字符集

行尾结束符: \r\n 或者\r 或者\n

对象流:处理对象二进制数据

需要对流进行关闭:

字符流操作:Reader,Writer

字节流操作:InputStream,OutputStream

Channel,GatheringByteChannel,InterruptibleChannel

ReadableByteChannel,ScatteringByteChannel,WritableByteChannel

Channels, DatagramChannel,FileChannel,FileLock,Pipe

SelectableChannel,SelectionKey,Selector,ServerSocketChannel,SocketChannel

中文两个字节,英文1个字节,一个字节8bit,高位补零

字节流不会使用内存缓冲,文件本身直接操作

字符流操作使用内存缓冲,用缓冲操作文件,字符流在输出前将内容保存在内容中

主要有四类操作:

1:字节操作:InputStream和OutputStream

2:字符操作:Reader和Writer

3:磁盘操作:File

4:网络操作:Socket

无论是网络还是磁盘,存储单元都是字节,字符是在字节的基础上进行了转换:

InputStreamReader

拿到字节数据后,要指定编码字符集,否则采用的是系统默认的字符集

磁盘IO机制:

系统在内核空间中加入了缓存机制,如果用户访问的是同一磁盘地址的空间数据,那么会从缓存中返回

标准访问方式:

调用read时,操作系统检查内核缓存中有没有数据,如果没有则从磁盘读取并缓存到内核缓存

调用write时:先复制到缓存中,对于用户来说操作已经完成,什么时候写入磁盘由操作系统决定

直接IO方式:

应用直接访问磁盘,不经过系统内核数据缓存区,通常使用在数据库管理系统中

同步访问方式:读取和写入都是同步操作,写入经过高速缓存然后进入磁盘,读取经过磁盘到高速缓存

异步访问方式:发起读写请求后,线程去处理其他的,等待高速缓存从磁盘读取回来后再操作

内存映射方式:把内存的一块区域和文件关联起来,文件的数据就是内存中的数据

FileInputStream会创建一个FileDescriptor对象,这个对象是真正代表一个存在的文件对象的描述

可以通过getFD犯法获取真正操作与底层操作系统相关的文件的描述

传入文件名时,创建一个File对象。读取File对象内容时,创建一个FileDescriptor操作,使用StreamDecoder类将byte解码成char格式。然后返回char数据

Java序列化技术:java序列化就是将一个对象转换成一串二进制字节数组。这样&

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值