IO流
Posted zhulina-917
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IO流相关的知识,希望对你有一定的参考价值。
1. 文件系统和File类
File类在Java.io包中 对于一个File对象来说它能够代表硬盘上的一个文件或者文件夹
原理:当我们创建一个File对象时,在内存中分配了一块内存区域,创建一个File对象并不会在系统中真的创建一个文件或者文件夹,而只在JVM内存中
创建了一个对象,通过这个对象能够跟磁盘打交道,从而操作底层的文件。因此File对象所代表的的文件或者文件夹可能不存在。
1、 File有四个构造方法其中三个比较常用
(1) File(String pathname) : 表示一个路径名 用来创建一个文件或者文件夹
(2) File(String parent, String child) : 用来构建parent/child 的文件或者文件夹
(3) File(File parent, String child) : 同样用 parent 表示父目录,只不过这个 parent 是用 File 类型来表示。
2、 File 类的一些基本操作
(1) createNewFile() : 这个方法可以用来创建一个新文件。需要注意的是,如果这个文件在系统中已经存在,createNewFile 方法不会覆盖原有文件。
(2) mkdir() / mkdirs() : 这两个方法都可以用来创建文件夹。所不同的是,mkdir 只能创建一层文件夹,而 mkdirs 能够创建多层文件夹。
2. IO 分类 问题引入
1. 所谓的流,指的是:用来传输数据的对象
2. 流可以按照方向分类,分为输入流和输出流
3. 流可以按照数据单位分类,分为字节流和字符流
4. 流可以按照功能分类,分为节点流和过滤流
5. 任何数据都可以按照字节的方式进行传输。
问题:汉字占用的有时并不是一个字节如果使用字节传输 ,传输过程中出现传输错误只保留半个汉字出现这种错误
解决:字符流
1. 字符流
字符流传输数据的单位是字符。这种流专门用于处理文本,能够方便的处理字符编码的问题。
2. 节点流
真正能够完成传输功能的流,而相对的,过滤流并不能完成真正的数据传输,过滤流是用来为其他流增强功能。
3. 设计模式
在节点流和过滤流的设计上,I/O 框架中使用了一种设计模式,这种设计模式被称为“装饰模式”。
4. 字节流
(1). 特点:数据单位是字节,能够处理任何一种文件
(2) . InputStream 和OutputStream 所有字节流的父类
FileInputStream
(1)FileInputStream(Sting filename):通过文件路径获得文件输入流
(2)FileFileInputStream(File file): 通过
以上是关于IO流的主要内容,如果未能解决你的问题,请参考以下文章