JAVA笔记十七

十七、File-IO流

1.I/O的概念和java.io包

(1)输入:外部源—>程序

  输出:程序—>输出目标

  外部源、输出目标:磁盘文件、网络连接、内存缓存等

(2)java程序通过流执行I/O

流是一种抽象,可以用来产生信息或者使用信息,可以通过java的I/O系统链接到物理设备

2.File类

可以表示一个文件,也可以表示一个路径/目录

(1)创建File对象

File对象描述了文件/目录本身的属性,用于获取和操作与磁盘文件/目录关联的信息

构造方法:

·File(String directoryPath)

·File(String directoryPath,String filename)

·File(File dirObj,String filename)

·File(URI uriObj)

(2)File类的常用方法

·boolean exists():File对象所表示的文件或目录是否存在

·String getName():获取文件名或文件夹名

·String getPath():将路径转换为字符串,并返回

·String getAbsolutePath():返回抽象路径名的绝对路径名字符串

·boolean isFile():判断File对象所表示的是否是一个标准文件

·boolean isDirectory():判断File对象所表示的是否是一个目录

·boolean createNewFile():创建新文件,如果目录不存在则异常

·boolean mkdir():只能创建一层目录

·boolean mkdirs():可以创建多层目录

·boolean delete():删除文件或文件夹

3.流

(1)流的分类

流的方向:

·输入流

·输出流

处理数据单位的方式:

·字节流(8位)

·字符流(16位)

功能:

·节点流:从一个特定的数据源(节点)读写数据的流

·处理流:通过对数据的处理位程序提供更为强大的读写功能

(2)IO流结构图

红色边框的流为常用的流

4.字节流

字节输入流InputStream主要方法

(1)read()

从此输入流中读取一个数据字节

(2)read(byte[] b)

从此输入流中将最多b.length个字节的数据读入一个byte数组中

(3)read(byte[] b, int off, int len)

从此输入流中将最多len个字节的数据读入一个byte数组中

(4)close()

关闭此输入流并释放与该流关联的所有系统资源

字节输出流OutputStream主要方法

(1)write(byte[] b)

将b.length个字节从指定byte数组写入此文件输出流中

(2)write(byte[] b, int off, int len)

将指定byte数组中从偏移量off开始的len个字节写入此文件输出流

(3)write(int b)

将指定字节写入此文件输出流

(4)close()

关闭此输入流并释放与该流关联的所有系统资源

5.字符流

字符输入流Reader主要方法

(1)read()

读取单个字符

(2)read(char[] cbuf)

将字符读入数组

(3)read(char[] cbuf, int off, int len)

将字符读入数组的某一部分

(4)read(CharBuffer target)

试图将字符读入指定的字符缓冲区

(5)flush()

刷新该流的缓冲

(6)close()

关闭此流,但要先刷新它

字符输出流Writer主要方法

(1)write(char[] cbuf)

写入字符数组

(2)write(char[] cbuf, int off, int len)

写入字符数组的某一部分

(3)write(int c)

写入单个字符

(4)write(String str)

写入字符串

(5)write(String str, int off, int len)

写入字符串的某一部分

flush() :刷新该流的缓冲。

close() :关闭此流,但要先刷新它

6.转换流

(1)InputStreamReader

字节输入流转换成字符输入流

FileInputStream fileInputStream=new FileInputStream(file);

Reader reader=new InputStreamReader(fileInputStream,UTF-8)  字节编码

InputStreamReader继承了Reader

(2)OutputStreamReader

字节输出流转换成字符输出流

FileOutputStream fileOutputStream=new FileOutputStream(file);

Writer writer=new OutputStreamWriter(fileOutputStream);

OutputStreamWriter继承了Writer

7.缓冲流

(1)字节缓冲流

BufferedInputStream、BufferedOutputStream

(2)字符缓冲流

BufferedWriter、BufferedReader

8.打印流

PrintWriter

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值