JAVA流

Posted for米洛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA流相关的知识,希望对你有一定的参考价值。

 

1.流的分类
1.1按照数据流的方向

输入流(Input):从文件往程序走数据

输出流(Output):从程序往文件走数据

 

1.2按照处理数据的单位不同:

各个类型所占的字节数

byte(1), short(2), int(4), long(8)
float(4), double(8)
boolean(1)
char(2)

字节流(以stream结尾的): 一个字节占8位, 以一个字节为单位读数据

字符流(以Reader, Writer结尾的): 一个字节占8位, 以一个字节为单位读数据

1.3按照功能分:
节点流: 只有一个根管道套在文件上进行传输
处理流: 将节点流处理一下, 增强管道的功能, 相当于在管道上套一层

 

文件类  java.io.File

  基本方法:

    getName:获取文件名称

    getPath:获取文件路径

    length:获取文件大小

    isDirectory:判断这个东西是不是一个目录

    isFile:判断这个东西时不是一个文件

    listFiles:获取当前这个路径下的所有文件和文件夹 返回一个File[ ]

 

 

二.JDK提供的流


提供了四个基本抽象类: InputStream, OutputStream, Reader, Writer

InputStream的基本方法:
int read(): 每次调用这个方法, 就读取一个字节, 以整数的形式返回

int read(byte[] buffer---缓冲区): 让流每次读满一个缓冲区, 再统一处理, 先存在缓冲区里, 返回值int是返回实际当中读取了多少字节数(伤硬盘的原理)

int read(byte[] buffer, int offset, int length): 也是一个缓冲区, 读取length长度的字节数, 存到buffer的缓冲区里, 从buffer的offset位置开始存, 返回值是实际读了多少字节数

close(): 关闭资源

OutputStream的基本方法:
void write(int b)

void write(byte[] b)

int write(byte[] buffer, int offset, int length)

close()

flush(): 将缓冲区中的文件全部写出

在使用流的时候的一个良好的习惯, 先flush, 再close

Reader的基本方法:
int read()
int read(char[] buffer---缓冲区)
int read(char[] buffer---缓冲区, int offset, int length)
close()

Writer的基本方法:
void write()
void write(char[] buffer---缓冲区)
void write(char[] buffer---缓冲区, int offset, int length)
void write(String s)
void write(String s, int offset, int length)
close()
flush()

   

 

以上是关于JAVA流的主要内容,如果未能解决你的问题,请参考以下文章

Java_I/O流

java Zip压缩输入输出流问题

java中的“流”是啥?

java;怎么关闭流文件?

java如何获取classpath中某文件的输出流

java的io中为啥有那么多种流啊?