IO流(字节流)

本文介绍了Java中的File类及其操作方法,详细讲解了JAVA流的分类,包括字节流如FileInputStream、FileOutputStream及其相关类DataInputStream、DataOutputStream,以及字符流如inputStreamReader、OutputStreamWriter等。同时,文章还探讨了序列化和反序列化的过程,强调了对象序列化时实体类需实现Serializable接口的重要性。

File类

作用:访问和操作文件的类

创建方式

File file = new File( String pathname);

常用方法

boolean exists( )//判断文件是否存在
boolean isFile( )//判断是否是文件
boolean isDirectory( )//判断是否为文件目录
String getPath( )//获取相对路径
String getAbsolutePath( )//获取绝对路径
String getName( )//获取文件或者目录的名称
boolean delete( )//删除文件或者目录
boolean createNewFile( )//创建新的文件,默认在项目的根目录
long  length()//返回文件的长度,字节问单位,如果文件不存在返回的是0L

JAVA流的分类

输入流:FileInputStream、DataInputStream、inputStreamReader、BufferedReader

输出流:FileOutputStream、DataOutputStream、ObjectOutputStream、OutputStreamWriter、ufferedWriter

字节流:FileInputStream、FileOutputStream、DataInputStream、DataOutputStream、ObjectOutputStream

字符流:inputStreamReader、OutputStreamWriter、BufferedReader、BufferedWriter

inputStream类

常用方法

int read( )//一个字节一个字节的读取文件中的数据,返回的是读取字节处理成int的数值(需要用char强转),如果读完就是-1;
int read(byte[] b)//从输入流中读取b.length个字节到b中,返回读入缓存区的的总字节数,若读完返回-1
int read(byte[] b,int off,int len)//从输入流中读取最多len个字节到b中,从off位置开始存放,返回读入缓存区的的总字节数,若读完返回-1;
void close( )//关闭流
int available()//可以从输入流中读取的字节数目

FileInputStream类

构造方法

FileInputStream(File file)
FileInputStream(String pathname)

OutputStream类

常用方法

void write(int c)//将字节一个一个写入文件的输出流中

void write(byte[] buf)//一次将buf.length个字节写入文件的输出流中

void write(byte[] b,int off,int len)//一次将buf.length个字节写入文件的输出流中,参数off代表着从数组下标off开始,参数len表示最终写入的字节个数

void close()//

FileOutputStream类

构造方法

FileOutputStream (File file)
FileOutputStream(String pathname)	
FileOutputStream(String pathname,boolean append)//是否追加true追加,false覆盖
//创建FileOutputStream实例时,如果相应的文件并不存在,则会自动创建一个空的文件

DataInputStream类

构造方法


FileInputStream fis = new FileInputStream("C:\\HelloWorld.class");
DataInputStream dis = new DataInputStream(fis);

DataOutputStream类

构造方法

FileOutputStream outFile = new FileOutputStream("C:\\temp.class");
DataOutputStream out = new DataOutputStream(outFile);

DataInputStream类和DataOutputStream类是FileInputStream类和FileOutputStream类的子类,前者主要拷贝音频之类的文件,后者拷贝文本文件。

序列化和反序列化

序列化:把内存的对象存入到磁盘中,用到的流是ObjectOutputStream

反序列化:把磁盘中的对象存入到内存中,用到的流是ObjectInputStream

对象的序列化,它的实体类必须实现serializable,如果不序列化,再传回来时就不是原来那个对象了;

构造方法

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream);
ObjectInputStream ois = new ObjectInputStream(new FileInputStream);

方法

oos.writeObject();

ois.readObject();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值