JAVA中的流学习
来源:互联网 发布:c定义未知长度的数组 编辑:程序博客网 时间:2024/06/06 03:41
IO的概念:
主要是指使用JAVA进行输入输出操作,JAVA所有IO机制都是基于流进行输入输出的,这些数据代表了字符或字节数据的流动系列
数据流:
数据流是一串连续不断的数据集合,类似于管道的感觉。采用数据流的目的就是使得输出输入独立于设备。
输入流:程序从输入流读取外界数据
输出流:程序向输出流写入数据,输出到外界
数据流分类:
流序列中的数据既可以是未加工的原始二进制数据,也可以是经一定编码处理后符合某种格式规定的特定数据。
1>字节流:数据流中最小的数据单位是字节
2>字符流:数据流中最小的数据单位是字符,JAVA中的字符是Unicode编码,一个字符占两个字节
标准IO:
java.lang.System public final class System extends Object{ static PrintStream err;//标准错误流(输出) static InputStream in;//标准输入(键盘输入流) static PrintStream out;//标准输出流(显示器输出流) }
java.IO层次体系:
5个类:(File、OutputStream、InputStream、Writer、Reader)
一个接口:Serializable
1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。
2.InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。
3.OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。
4.Reader(文件格式操作):抽象类,基于字符的输入操作
5.Writer(文件格式操作):抽象类,基于字符的输出操作
6.RandomAccessFile(随机文件操作):它的功能丰富,可以从文件的任意位置进行读取(输入输出)操作
非流式文件类(File类):
主要用于命名文件,查询文件属性和处理文件目录
import java.io.File; import java.io.IOException; public class TestFile { public static void main(String args[]) throws IOException { File dir = new File("\\root"); File f1 = new File(dir, "fileOne.txt"); File f2 = new File(dir, "fileTwo.java"); // 文件对象创建后,指定的文件或目录不一定物理上存在 if (!dir.exists()) dir.mkdir(); if (!f1.exists()) f1.createNewFile(); if (!f2.exists()) f2.createNewFile(); System.out.println("f1's AbsolutePath= " + f1.getAbsolutePath()); System.out.println("f1 Canread=" + f1.canRead()); System.out.println("f1's len= " + f1.length()); String[] FL; int count = 0; FL = dir.list(); for (int i = 0; i < FL.length; i++) { count++; System.out.println(FL[i] + "is in \\root"); } System.out.println("there are" + count + "file in //root"); } }
JAVA流派生关系:
缓冲输入输出流BufferedInputStream/BufferedOutputStream:
计算机访问外部设备非常耗时,为了减少访问外存对计算机的消耗,因此除了程序和流节点间交换数据必须的读写极之外,还应该增加缓冲机制。缓冲流就是每一个数据流分配一个缓冲区,一个缓冲区就是一个临时存储数据的内存,这样可以减少访问硬盘的次数,提高传输效率。
BufferedInputStream:数据先写到缓冲区,待缓冲区写满后一次性将数据发送给输出设备
将文件读入内存:
FileInputStream in=new FileInputStream( “file1.txt ” ); BufferedInputStream bin=new BufferedInputStream( in);
BufferedOutputStream:系统从缓冲区读取数据,待缓冲区为空时,系统才从输入设备读取数据到缓冲区
将内存写入文件:
FileOutputStreamout=new FileOutputStream(“file1.txt”);BufferedOutputStream bin=new BufferedInputStream(out);
将键盘输入流读到内存:
InputStreamReader sin=new InputStreamReader (System.in) ;BufferedReader bin=new BufferedReader(sin);
- JAVA中的流学习
- Java中的数组学习
- Java 学习中的问题
- java中的BitSet学习
- java中的BitSet学习
- java中的BitSet学习
- 学习Java中的static
- java中的BitSet学习
- java中的BitSet学习
- java中的正则学习
- Java中的反射学习
- 学习Java中的定时器
- Java中的异常学习
- 学习java中的继承
- JAVA中的transient学习
- JAVA学习笔记——JAVA中的IO流
- java学习笔记(二十六)java中的io流
- Java中的回调学习
- Freertos 二元信号量
- Android 实现borderless的Button并设置分界线
- 黑马程序员—java基础_IO流—字节流
- java不定参数列表---乔老师没讲,但是传智有讲
- js去掉空格回车换行
- JAVA中的流学习
- JavaScript常用记录(2)
- C语言 二叉树按层打印、深度优先遍历、二叉树是否对称
- 北斗卫星导航产业重大应用示范项目落户哈市
- Android混淆资料收集
- FZU--2188(搜索+剪枝)
- XDOJ IP查询
- multiprocessing研究
- Java transient关键字