Java IO
<p>[TOC]</p>
<h1>1.I/O分类</h1>
<ol>
<li>
<p>按照读写单位大小分类:
a. 字符流:以字符为单位,读入读出都是16位数据,只能读取字符类型的数据,Java代码接收数据一般是char数组,也可以是别的
b. 字节流:以字节为单位,读入读出都是8位数据,可以读取文字、图片、视频等,Java代码接收数据只能是byte数组</p>
</li>
<li>按照实际I/O操作分类:
a. 输出流:从内存读取文件,只能进行写操作,可以创建新文件
b. 输入流:读取文件到内存,只能进行读操作,不能创建新文件</li>
</ol>
<p>3. 按照读写时是否会直接跟硬盘、内存等连接分类:
a. 节点流:直接跟数据源连接,读入读出
b. 处理流 / 包装流:对一个已经存在的流进行封装,通过所封装的流的功能调用实现数据读写(如添加一个缓冲区)</p>
<h1>2. 处理流的作用</h1>
<p>在读入写出的时候,对数据进行缓存,可以减少IO操作,实现更快的读写文件</p>
<h1>3. 字节流如何转字符流</h1>
<p>字节输入流转字符输入流可以通过InputStreamReader实现,该类构造器可以传入InputStream对象;
字节输出流转字符输出流可以通过OuputStreamWriter实现,该类构造器可以传入OutputStream对象</p>
<h1>4. System.out.println是什么</h1>
<p>1. System是java.lang包中的一个类,用于和操作系统进行交互;
2. out是System类中一个类型为PrintStream的静态成员变量;
3. println是PrintStream的一个方法。</p>
<h1>5. Filter流</h1>
<p>Filter Stream是一种IO流,主要作用是为存在的流增加一些额外的功能,比如为目标文件增加源文件中不存在的行、增加拷贝的性能。</p>
<h1>6. 可用的Filter流</h1>
<p>java.io包中主要有4个可用的filter stream,字节输入输出流FilterInputStream FilterOutStream和字符输入输出流FilterReader FilterWriter,这四个类是抽象类不能被实例化。</p>
<h1>7. Filter流的子类</h1>
<ul>
<li>LineNumberInputStream:给目标文件增加行号</li>
<li>DataInputStream:readInt读取一个int值,readDouble读取一个double数据,readLine读取一个String数据</li>
</ul>
<h1>8.什么是内核空间</h1>
<p>应用程序是不能直接访问硬盘的,程序没有权限直接访问,但是操作系统会给我们一部分权限较高的空间,叫内核空间,和实际硬盘空间是有区别的。</p>