面经集合


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>

页面列表

ITEM_HTML