java——IO

来源:互联网 发布:淘宝网触屏版官网 编辑:程序博客网 时间:2024/06/13 19:10

在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);拿字节流可以直接构造出带缓冲的字符流

0 0
原创粉丝点击