java——IO

本文详细介绍了Java中I/O流的基本概念与使用方法,包括文件操作、字节流与字符流的区别及应用,以及如何利用过滤流提高数据处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在I/O,讲究效率的。
pc 10000/s 50000/s
字节流基础,字符流重点

1、IO编程 (比较重要的)

input:输入
out:输出
和外部数据源进行数据交换
java.io.File 一个File对象代表磁盘上的一个文件或者目录

createNewFile():创建新文件
mkdir():创建新的目录
delete():删除
exists():文件对象所代表的文件()或目录是否存在。
isDirectory():判断文件对象所代表的是否是目录
isFile():判断文件对象所代表的是否是文件。

listFiles():

ls:列出文件所有的子目录
ls * .class

listFiles():所有的
listFiles(FileFilter filter):文件过滤器,FileFilter是个接口。

2、I/O流
1、创建节点流
2、封装过滤流
3、读/写数据
4、关闭流
流:对象,用来在JVM和外部数据之间传输数据。
三种分类:
按照数据的方向:输入流/输出流 绝大部分的流是单向
jvm—>file输出流
jvm<–file输入流
按照数据的单位:字节流/字符流

字节流:以字节为单位,可以处理一切数据
字符流:以字符为单位,只能处理本文文件(.txt/.java/.html/.xml)

按照流的功能:节点流/过滤流
节点流:最底层的,实际传输数据的流。
过滤流:给节点流增强功能

InputStream/OutputStream 字节流的父类
FileInputStream/FileOutputStream 文件字节流 节点流
write(int a):把字节a写出去
write(byte[] bs):把字节数组bs全部写出去
write(byte[] bs,int off,int len):把bs的一段写出去。

 int read():从文件中读一个字节  返回-1未结束
 int read(byte[] bs):从文件中读多个字节,读满bs,返回值为实际读到的字节数 以-1位结束 

 int read(byte[] bs,int off,int len):从文件中读多个字节,放入bs中的一段,返回值为实际读到的字节数 以-1位结束 

长整数===》数组时,考虑用过滤流,功能增强
过滤流

DataInputStream/DataOutputStream 直接读写8种基本类型和String

BufferedInputStream/BufferedOutputStream 缓冲
写出去的数据先放在缓冲区,满了再到文件。

PrintStream :是一个输出流,也是一个遍历流(没有配对的输入流)。写8种基本类型。缓冲 System.out 是对象
PipedInputStream/PipedOutputStream 管倒流 用来在线程间交换数据。
RandomAccessFile:随机访问文件(上面都是顺序访问文件)

3、字符流:
字符编解码:
A—编码–》65
A《—解码–65
任何数据都有一个编解码的过程,什么东西写在计算机里面都是一堆数。
当编码方式和解码方式不统一的时候,可能会造成乱码。

ASCⅡ 一个字符编码为一个字节1B
ISO-8859-1 西欧国家
GBK 都包含了中国 2B
GB2312 //部分字没有编码 镕 喆 (还有好多有)
Bi85
Unicode 全球 2B
UTF-8 全球

4、Reader/Writer 字符流的父类
FileReader/FileWriter 文件字符流 节点流
只能用做读写文件
BufferedReader/PrintWriter 缓冲流 过滤流
输入流:都有read() 是阻塞方法

InputStreamReader/OutputStreamWriter: 桥转换 在桥转换的时候指定编解码方式
字节流包装成字符流

PrintWriter out=new PrintWriter(ow);拿字节流可以直接构造出带缓冲的字符流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值