File和I/o流

java.io.File  

  file:代表了磁盘的一个文件或目录,该对象属性包含了文件或目录的信息,调用方法可以进行创建、删除

   构造方法:

         File(String pathname);

         File(String parent,String child);

      File(File parent,String child);

创建一个FIle对象,因为每一个对象都是指向硬盘上的某一目录或者文件,所以File类没有有参构造方法,所有的构造方法在创建对象的时候都必须要指定

该对象指向的文件或者目录路径


常用的方法:

  isFile();判断指定目录是否为文件

  isDirectory();判断当前目录时候为目录

     注:如果File对象中包含的路径不存在时,就无法判断是文件还是目录

exists();判断当前File包含的路径是否存在

long  length();以字节返回文件的大小

  mkdir();创建当前FIle指向的目录

mkdirs();创建当前File指向的目录,包括不存在的父目录

CreateNewFile();创建当前目录指向的文件

delete();文件不使用时删除

deleteOnExit();虚拟机退出时,删除文件

注:删除文件或目录时,如果该目录下有文件或者子目录,则无法删除

String getName();获取到文件名或者目录名

File getAbsoluteFile();获取当前对象的绝对路径

流:在计算机和智能设备之间有序的传输的二级制数据序列
流的分类:1.按传输的方向分类:
a.输入流:传输到当前程序
b.输出流:从当前程序输出到其他位置
2.按传输的单位分类:
a.字节流:以字节为单位,进行数据传输
b.字符流:以字符为单位,进行数据传输,字符流的底层也是通过字节传输的

InputStream(字节输入流):
作用:将指定文件中字节读取到程序中去
方法: int read() 读取到一个字节,然后返回,如果读到末尾,则返回-1
int read(byte[] b) 读入b.length的字节数据,数据放置到数组中
void close(); 关闭流
子类:FileInputStream:
OutputStream(字节输出流)
作用:将当前程序中的数据写入到文件中
方法: void write(byte[] b)向文件写入数组中的数据
void write(byte[] b,int offset,int length) 向文件写入指定长度的数组
void flush();对缓存区中的字节数据流刷新操作
void close();关闭流
子类:FileOutputStream
构造方法:FileOutputStream(String pathname);
FileOutputStream(String pathname,boolean append);
append确定是否在源文件上追加数据
java.io.ObjectOutputStream :对象字节输出流
将java对象输出转换成有序的二进制序列,但不能真正进行传输数据,需要借助其他的流来完成数据传输工作
方法:writeObject(Object obj)
tips:1.关闭该流时,也会关闭借助的其他流
2.输出的对象需要实现可序列化接口 Serializable

序列化:把java中的对象转化成有序的二进制序列的过程。
实现序列化:java语言中某一类的对象如果需要进行序列,这个类必须实现java.io.Serializable 接口,表明该类启用了序列化功能

java.io.ObjectInputStream
把二进制序列重写成对象,反序列化。

反序列化:把原始的二进制数据序列重新构建成java语言中的对象

字符流:避免了字符,字节的转化
字符输入流:java.io.Reader
方法:int reader() 单词读取一个字符
void close();
字符输出流:java.io.Writer


java.io.FileReader
作用:将文本文件的字符数据,读取到程序中来
java.io.FileWriter
作用:将字符写入到文本文件中
方法:write() 参数可以是字符,字符数组,字符串
该类维持有缓存,有两种情况缓存中的数据会写入硬盘:
1.缓存用完
2.调用了flush
java.io.InputStreamReader:将字节流转换为字符流

BufferReader
方法:readerLine;读取字符串




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩渃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值