面经集合


Java IO

[TOC]

1.I/O分类

  1. 按照读写单位大小分类: a. 字符流:以字符为单位,读入读出都是16位数据,只能读取字符类型的数据,Java代码接收数据一般是char数组,也可以是别的 b. 字节流:以字节为单位,读入读出都是8位数据,可以读取文字、图片、视频等,Java代码接收数据只能是byte数组

  2. 按照实际I/O操作分类: a. 输出流:从内存读取文件,只能进行写操作,可以创建新文件 b. 输入流:读取文件到内存,只能进行读操作,不能创建新文件

3. 按照读写时是否会直接跟硬盘、内存等连接分类: a. 节点流:直接跟数据源连接,读入读出 b. 处理流 / 包装流:对一个已经存在的流进行封装,通过所封装的流的功能调用实现数据读写(如添加一个缓冲区)

2. 处理流的作用

在读入写出的时候,对数据进行缓存,可以减少IO操作,实现更快的读写文件

3. 字节流如何转字符流

字节输入流转字符输入流可以通过InputStreamReader实现,该类构造器可以传入InputStream对象; 字节输出流转字符输出流可以通过OuputStreamWriter实现,该类构造器可以传入OutputStream对象

4. System.out.println是什么

1. System是java.lang包中的一个类,用于和操作系统进行交互; 2. out是System类中一个类型为PrintStream的静态成员变量; 3. println是PrintStream的一个方法。

5. Filter流

Filter Stream是一种IO流,主要作用是为存在的流增加一些额外的功能,比如为目标文件增加源文件中不存在的行、增加拷贝的性能。

6. 可用的Filter流

java.io包中主要有4个可用的filter stream,字节输入输出流FilterInputStream FilterOutStream和字符输入输出流FilterReader FilterWriter,这四个类是抽象类不能被实例化。

7. Filter流的子类

  • LineNumberInputStream:给目标文件增加行号
  • DataInputStream:readInt读取一个int值,readDouble读取一个double数据,readLine读取一个String数据

8.什么是内核空间

应用程序是不能直接访问硬盘的,程序没有权限直接访问,但是操作系统会给我们一部分权限较高的空间,叫内核空间,和实际硬盘空间是有区别的。

页面列表

ITEM_HTML