JavaSE I/O流

File类

是java.io包中很重要的一个类

一个File类的对象,可以表示计算机硬盘上一个具体的文件或目录

通过File类的对象 来获取 文件/目录的相关信息(例如创建时间,是否可写....)

输入和输出是相对而言的, java中提供了许多类,一些负责从硬盘上读取文件(输入) 一些负责将程序中的数据写(输出)到目标位置, 这些类形象的称为流(管道)
输入输出(I/O) 把电脑硬盘上的数据读到程序中,称为输入,即input,进行数据 的read 操作从程序往外部设备写数据,称为输出,即output,进行数据的write 操

 

File中的常用方法:

File    f1=new File;

f1.canWrite()       //返回文件是否可以写入
f1.exists()          //文件/目录是否存在f1.lastModified()    //返回文件最后一次修改的时间
f1.isHidden()         //返回文件/目录是否隐藏
f1.isDirectory()      //判断是否是目录
f1.isFile()          //判断是否是文件
f1.getName()          //获取文件名
f1.getAbsoluteFile()  //获取文件绝对地址
f1.length()        //获取到的是文件的字节数,一个英文字母占一个字节,在utf-8中一个汉字3个字节f1.delete()   //删除文件
String [] list()  //将目录下的子目录及文件的名字,返回到String数组中
File[] listFiles()   //将目录及文件的实例返回到File数组中

字节:计算机最小存储单位是字节,电脑上所有的文件最终都是以字节的形式存储到硬盘的,例如:照片,视频,音频...

字符:文字,底层还是字节,例如:中-->20013-->3个字节

输入流,输出流

对象输入输出流:
有时候,需要将运行中的对象信息持久保存起来,因为对象在内存中,程序如果终止,对象信息就不存在
将对象信息输出到文件的过程,称为对象的序列化,使用ObjictOutputStream完成(处理流)
将对象信息从文件中输入到java程序的过程,称为对象反序列化,使用的ObjectInputStream
对象的反序列化,会在内存中从新创建新的对象保存数据,所以,也是java中创建对象的一种方式

字节流与字符流

● InputStream和OutputStream的子类都是字节流 可以读写二进制文 件,主要处理音频、图片、歌曲、字节流,处理单元 为1个字节。

● Reader和Writer的子类都是字符流 主要处理字符或字符串,字符流处 理单元为1个字符。 字节流将读取到的字节数据,去指定的编码表中获取 对应文字字符

 字节流中常用类

字节输入流 FileInputStream

读取一个字节并以整数的形式返回(0~255),如果返回-1已到输入流的末尾。 int read() throws IOException 读取一系列字节并存储到一个数组buffer, 返回实际读取的字节数,如果读取前已到输入流的 末尾返回-1 int read(byte[] buffer) throws IOException 关闭流释放内存资源 void close() throws IOExceptio

字节输出流 FileOutputStream

向输出流中写入一个字节数据,该字节数据为参数b的低8位 void write(int b) throws IOException 将一个字节类型的数组中的从指定位置(off)开始的 len个字节写入到输出流 void write(byte[] b, int off, int len) throws IOException 关闭流释放内存资源 void close() throws IOException

 字符流中常用类

字符输入流 FileReader

字符输出流 FileWrite

节点流与处理流

● 节点流中常用类 字节输入流 FileInputStream

字节输出流 FileOutputStream

字符输入流 FileReader

字符输出流 FileWriter

● 处理流中常用类

缓冲字节输出流 BufferedOutputStream

缓冲字节输入流 BufferedInputStream

缓冲字符输入流 BufferedReader

缓冲字符输出流 BufferedWrite

输入输出字符流

●Reader 的基本方法

读取一个字符并以整数的形式返回, 如果返回-1已到输入流的末尾。

int read() throws IOException

读取一系列字符并存储到一个数组buffer, 返回实际读取的字符数,如果读取前 已到输入流的末尾返回-1

int read( char[] cbuf) throws IOException

关闭void close() throws IOException

• Writer 的基本方法

向输出流中写入一个字符数据,该字节数据为参数b的16位

void write(int c) throws IOException

一个字符类型的数组中的数据写入输出流

void write( char[] cbuf) throws IOException

将一个字符类型的数组中的从指定位置(off set)开始的 length个字符写入到 输出流

void write( char[] cbuf, int off set, int length) throws IOException

关闭void close() throws

Print流

● Print 打印流: 只做输出没有输入 打印流分为字节打印流和字符打印流

PrintWriter: 字符打印流 print方法可以打印各种类型数据 在javaweb项目中,服务器端向客户端响应数据以打印流的方式响应

ObjectStream:对象序列化,将对象信息输出到文件的过程

对象的反序列化,将信息从文件中取出transient关键字

默认情况下当执行了对象序列化的时候会将类中的全部属性的内容进行全部的序列化操作, 但是很多情况下有一些属性可能并不需要序列化的处理,这个时候就可以在属性的定义上使 用transient关键字来完成了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值