IO流(Java面试题)

1、什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别

Bit就是比特位,是计算机最小的二进制单位,取值0或1,

Byte占有8个比特位, 取值-128~127

Char占有两个字节,16个比特位,取值0~65535

Bit是数据存储最小单位,计算机只认识0和1

Byte是计算机存储容量的基本单位

Char是java的一种基本数据类型

2、什么是流,按照传输的单位,分成哪两种流

JAVA程序中对数据的输入输出称为流

分为字节流和字符流

字节流: inputStream outputStream

字符流: Reader Writer

3、流按照传输的方向可以分为哪两种,分别举例说明

输入流InputStream

输出流OutputStream

4 、流按照实现功能分为哪两种,分别举例说明

节点流:OutputStream

处理流:outputStreamWriter(字节流转字符流)

5、BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法

、属于处理流中的缓冲流,(从字符输入流中读取文本,用于文字输入的程序进行本地化。)可以将读取的内容存在内存里面,有readLine()方法

6、什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征

节点流 : 直接与数据源连接,用于数据输入输出

处理流:对节点流的封装,进行功能扩展,处理流的构造方法总是传入节点流的子类

特征 : 处理流的构造器必须传入节点流的子类

7、如果我要对字节流进行大量的从硬盘读取,要用那个流,为什么

   BufferedInputStream使用缓冲流能减少对硬盘的损伤

8、如果我要打印出不同类型的数据到数据源,那么最适合的流是那个流,为什么

   printWriter    可以打印各种数据类型

9、怎么样把我们控制台的输出改成输出到一个文件里面,这个技术叫什么

SetOut 重定向

10、怎么样把输出字节流转换成输出字符流,说出它的步骤

outputStreamWriter可以将字节流转为字符流

new OutputStreamWriter(newFileOutputStream(""));

11、把包括基本类型在内的数据和字符串按顺序输出到数据源,或者按照顺序从数据源读入,一般用哪两个流

DataInputStream DataOutputStream

12、把一个对象写入数据源或者从一个数据源读出来,用哪两个流

ObjectInputStream反序列化 ObjectOutputStream序列化

13、什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作

对象序列化是将对象以二进制形式保存在硬盘上

反序列化是将保存在硬盘上的对象二进制文件转化为对象读取到程序中

需要实现serializable接口,不想让某个字段放在硬盘,就给字段加transient修饰符

15 在实现序列化接口的时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用

    是版本号,

    保持版本号的一致来进行序列化可以防止序列化出错

16、 InputStream里的read()返回的是什么,read(byte[] data)是什么意思,返回的是什么值

返回的是读取的字节int型(范围0-255)

Byte[]将读取的字节数据存储在这个数组里

返回读入缓冲区的字节总数,如果没有更多数据,则返回-1

17、OutputStream里面的write()是什么意思,write(byte b[], int off, int len)这个方法里面的三个参数分别是什么意思

     write将指定字节写入数据源

     Byte b[]是byte数组,目标数组

     b[off]是传入的第一个字符

     b[off+len-1]是传入的最后的一个字符

     len是实际长度

18 、流一般需要不需要关闭,如果关闭的话在用什么方法,一般要在那个代码块里面关闭比较好,处理流是怎么关闭的,如果有多个流互相调用传入是怎么关闭的?

流一旦打开就必须关闭,使用close方法

放入finally语句块中(finally 语句一定会执行)

(调用的处理流就关闭处理流)调用close方法

多个流互相调用只关闭最外层的流

19、Java中的所有的流可以分为几大类,它们的名字是什么,各代表什么

     字节输入流 InputStream 

     字节输出流 OutputStream

     字符输入流 Reader

     字符输出流 Writer

     所有流都是这四个流的子类

20、io流怎样读取文件的?

定义一个fileReader的字符输入流,传入文件路径,使用字符缓存流BufferedReader处理fileReader,再定义一个字符串用来接收BufferedReader的方法ReaderLine一行一行地读取文件

21、说说你对io流的理解

Io流主要是用来处理输入输出问题,常用的io流有InputStream,OutputStream,Reader,Writer等

22、JAVA的IO流和readLine方法

readLine是BufferedReader里的一个方法,读取一个文本行. 通过换行 (’\n’)、回车 (’\r’)判断一行的终止.如果已达到流的末尾,则返回null。

23、用什么把对象动态的写入磁盘中,写入要实现什么接口。

ObjectInputStream进行反序列化,需要实现Serializable接口

24、FileInputStream 创建详情,就是怎样的创建不报错,它列出了几种形式!

FileInputStream是InputStream的子类,通过接口定义,子类实现创建FileInputStream

25、请问你在什么情况下会在你得java代码中使用可序列化? 如何实现java序列化?

把一个对象写入数据源或者从一个数据源读出来,使用可序列化,需要实现Serializable接口

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 将数据转换为二进制比特意味着将给定的数据(如数字、文本或图像等)转换为由 0 和 1 组成的比特序列,以便计算机可以对其进行处理和存储。 在二进制编码中,每个数字或字符都被表示为一串比特(通常是 8 位,也称为一个字节),其中每个比特可以是 0 或 1。例如,十进制数字 13 可以表示为二进制数 00001101,其中左边的位数表示更高位的值,右边的位数表示更低位的值。 数据转换为二进制比特通常是计算机中许多操作的基础,例如数据存储、通信和处理。 ### 回答2: 将数据转换为二进制比特意味着将数据按照二进制编码方式进行表示和存储。二进制是一种使用0和1两个数字进行表示的计数系统,也是计算机内部数据的标准表示方式。 比特是二进制的最小单位,代表一个二进制数的位,可以表示为0或1。在数据转换中,我们将每个数据元素,如数字、字符或图像等,用二进制表示,并将其分割为一系列的比特。每个比特的值决定了对应数据元素在计算机内部的表示。 数据转换为二进制比特的过程可以通过多种方法完成,比如利用计算机编程语言的函数、转换工具或算法。例如,对于一个十进制数42,我们可以使用除以2取余法逐步获取其二进制表示。42除以2等于21余0,再将21除以2等于10余1,最后将10除以2等于5余0,5除以2等于2余1,2除以2等于1余0,1除以2等于0余1。将这些余数按相反的顺序排列起来,即可得到42的二进制表示为00101010。 数据转换为二进制比特的过程对于计算机和数据存储来说是至关重要的,因为计算机硬件和软件系统通常使用二进制比特来表示、处理和存储数据。通过将数据转换为二进制比特,我们可以更有效地传输、处理和计算大量的数据,并保证数据在计算机系统中的准确性和一致性。 ### 回答3: 将数据转换为二进制比特意味着将数据转换为由0和1组成的二进制数字序列。比特是二进制位的缩写,是计量计算机存储容量和传输速度的单位。二进制是一种基于2的计数系统,由两个数字0和1组成。在计算机系统中,所有的数据和指令都被转换为二进制比特形式进行处理。 数据转换为二进制比特对计算机来说是必要的,因为计算机中的所有运算和处理都是基于二进制的。例如,将整数转换为二进制表示,可以更有效地存储和处理数据。在二进制表示中,每一位代表一个2的幂次,可以通过基本的逻辑运算(如与、或和非)对其进行操作。 数据转换为二进制比特的过程,通常通过编码算法实现。最常见的编码算法是ASCII码,它将字符映射为对应的二进制比特序列。其他编码算法还包括Unicode和UTF-8等。在编码过程中,不同的字符或数据类型会被分配为不同长度的二进制比特序列,以满足不同数据表示的要求。 总之,数据转换为二进制比特是将数据从原始形式转换为由0和1组成的二进制数字序列的过程,这是计算机系统进行数据存储和处理的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值