输入输出处理
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;