java高级部分之IO流的简单了解

输入输出处理

1、File类的使用、方法
2、使用输入流以字节为单位从文件读取文件(输入是读)
3、使用输出流以字节为单位将数据写入到文件(输出是写)
4、注意事项
Java程序如何访问文件属性?
JAVA API提供了:java.io.File类
file类访问文件f属性
根据文件所在的磁盘路径创建文件对象

File file = new File(String pathname);
//pathname是路径

File类的常用放法:

boolean exists()        	//判断文件或者目录是否存在
boolean isFile()			//判断是否是文件
boolean isDirectory()		//判断是否是目录
String getPath()			//返回此对象表示的文件的相对路径
String getAbsolutePath()	//返回此对象表示的文件的绝对路径
String getName()			//返回此对象表示的文件或目录的名称
boolean delete()			//删除此对象指定的文件或目录
boolean createNewFile()		//创建名称的空文件,不创建文件夹
long length()				//返回文件的长度,单位为字节,如果文件不存在,则返回0L

1、概念:一组有序的数据序列(字节数组),以先进先出的方式发送信息的通道
2、分类:
方向:
1) 输入:从外–>内 XxxInputStream/XxxReader 读出来
2) 输出:从内–>外 XxxOutputStream/XxxWriter 写进去
内容:
1) 字节流:byte[] XxxInputStream/XxxOutputStream
2) 字符流:char[] XxxReader/XxxWriter
功能:
1) 节点流:直接面向数据源的流(基础流)
2) 处理流:扩展了节点流在某些特定领域的操作
是否依赖网络:
1) 本地流:文件流
2) 网络流

IO流相关类的关系
FileInputStream是InputStream抽象类的子类
FileOutputStream是OutputStream抽象类的子类

字节流不适合读文本文件 需要用到字符流。
输入输出处理
1、File类的使用、方法
2、使用输入流以字符为单位从文件读取文件(输入是读)
3、使用输出流以字符为单位将数据写入到文件(输出是写)
4、注意事项

读取或写入的单位不一样,涉及到的工具也不一样
步骤一样,类不一样
父类Reader–>子类InputStreamReader(可指定字符编码)–>子类FileReader(本地编码)
BufferedReader类也是Reader的子类
BufferedReader类带有缓冲区,按执行读取内容的readLine()方法
父类Writer—>子类OutputStreamWriter—>子类FileWriter

序列化和反序列化

序列化

ObjectOutputStream oos = new ObjectOutputStream(文件输出流/网络输出流);
oos.writeObject(new Msg(...));
oos.flush();
oos.close();

反序列化

ObjectInputStream ois =new ObjectInputStream(文件输入流/网络输入流);
Msg msg = (Msg)ois.readObject();
...;
ois.close;

猜你喜欢

转载自blog.csdn.net/weixin_44147632/article/details/107702417