栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java IO基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java IO基础

IO操作:
input:数据从流向内存
output:数据流向外部设备

字节流,字符流适合处理各种非纯文本数据和纯文本。
节点流,处理流:对节点流的包装,实现特定功能的增强。节点流是直接作用在文件和内存之间。
四大抽象类:InputStream/OutputStream Reader/Writer
四大节点流:FileInputStream/FileOutputStream FileReader/FileOutputWriter
四大缓存流:BufferedInputStream/BufferedOutputStream BufferedReadere/BufferedWriter

Alt Shift Z:可以选中代码块
为了保证流一定会被手动关闭,要使用try-catch-finally语法
流为啥要手动关闭呢?节约资源?
字符节点流:FileReader/FileWriter
read(): int 将字符unicode值对应的Integer值 末尾返回-1
read(char[]): int 返回读到的字符个数 | -1
read(char[], int index, int count): int
close(): void 关闭流
String(char[],int index,int count) : String 构造字符串
write(char[]): void
write(String): void -> String::toCharArray(): char[]
文件不存在则创建,默认替换内容

FileInputStream/FileOutputStream
FileOutputStream(File,boolean)
read(byte[]): int  -> String(byte[],int off, int len)
write(byte[]): void
write(byte[],int,int):void

提高文件的读写效率
缓冲流:BufferedInputStream/BufferOutputStream
BufferedInputStream(InputStream)
BufferedOutputStream(OutputStream)
BufferedOutputStream(OutputStream,boolean)
内部实际上是开辟了一个空间,先把一些数据取来,这样节省时间a:
private static int DEFAULT_BUFFER_SIZE = 8192;
关闭先关闭处理流,在关闭内层节点流; 实际上关闭了内存的结点流
flash(): void 刷新缓冲区,数据输出(入)

BufferReader/BufferWriter:

新增方法:readLine(): String | null 读取一行,不包含换行符
newline(): 提供换行操作

转换流:针对内存层面是字符,可以操作不同编码的文本
InputStreamReader/OutputStreamWriter:
InputStreamReader(InputStream): 使用系统默认字符集,
InputStreamReader(InputStream,String):指定字符集: UTF-8 gbk
OutputStreamWriter(OutputStream,String):指定字符集: UTF-8 gbk
后续操作和FileInputReader()一致

标准输入、输出流:
System.in,System.out -> InputStream | PrintStream
setIn(InputStream)/setOut(OutputStream): 重指定输入,输出设备
打印流:PrintStream、PrintWriter
默认输出对象是控制台,setout(OutputStream): 将打印流打印到其他地方
数据流:用于读取写出基本数据类型
DataInputStreamDateOutputStream
readXxx()
readUTF()
readFully(byte[])
WriteXxx()
WriteUTF()
WriteFully(byte[])
注意读取的顺序和写入的顺序一致
604 ~ 608未观看 晚上观看 10/21
serialVersionUID保证类修改后还能找到,保证内部引用的对象本身也是可序列化的 static & transient修饰变量不能序列化
对象流持久化对象:该对象必须实现Serializble | Externalizable 接口 & public static final long serialVersionUID = XXX;
ObjectInputStream/ObjectOutputStream
存取基本数据类型,对象本身,static或者transient的成员变量无法序列化

writeObject(Object obj):写入一个对象 -> 需要显式的刷新
readObject():Object

随机存取文件流:RandomAcceseeFile extends Object implements DataOutput, DataInput
RandomAccessFile(String, String mode)
RandomAccessFile(File, String mode)
r:只读 rw:读写 rwd:同步文件内容更新 rws:新增元数据
write(byte[]):不清空数据情况下覆盖,可以插入操作
seek(int index):将指针调入相对索引,从0开始
byteArrayOutputStream:
byteArrayOutputStream():
可以将字节写入这个流中
NIO:基于缓冲区
NIO2:Path、Files,paths
Path接口是升级版File
常用方法见API

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340458.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号