20170830 - Q - Java IO操作

1 如何写出int型/long型数据?字符串数据?哪种方式可以指定写入或读取的位置?

2 操作完文件后的必要操作是?

3 如何查看写完文件后指针的位置?

4 当使用readInt方法连续读取文档中的int值,是否会报错,为什么?

5 如何读取文件中写入的long值?

6 如何用RAF写入字符串值?

7 如何设定写入字符串的编码形式?若先按照utf-8编码写入一段字符串,再重新按照gbk编码写入一次,则会?

9 如何读取文本中的字符串?

10 字符串(引用类型) 比较必须用什么?

11 输出输入是相对于谁?

12 数据源是什么?

13 流分为低级流和高级流

15 文件流,典型的低级流——数据与程序间的管道

16 int型等基本类型数据如何转换成字节?字符串呢?

17 输出流分为几种模式?

18 如何使用输出流,写入数据?

19 当输出流读取到最后一个字符时是否会返回-1?

19 如何理解流?

20 缓冲流用于什么?

21 高级流可以独立存在吗?

22 关哪个流?

23 装载了高级流的低级流,在后续操作时操作哪个流?

24 (缓冲区有100个字节容量,该次只读取6个字节——如发送“你好”)缓冲区内容未加载满就不写出或读取吗?如何解决?
正确,使用 .flush()强制将缓冲区中的数据一次性写出,或 .close()(会调用.flush())

25 缓冲区的工作原理是?

26 对象流用于方便读取对象。

27 BIS,BOS定义在哪,哪里就是所谓的程序(即文件)。

谨记一个原则:“文件读取,读取到的数据为二进制的数据,文件写入,需要将数据转化为二进制的字节才能写入(写入的数据在文件上以指定的形式显示)

当需要对文件读写时,有两种方式可以选择,一是使用RAF连接文件上,限定模式后对文件进行操作,二是用stream连接到文件上
而stream并不能像RAF一样,读取和写入都可以指定起始位置,并且用一个RAF对象就可以完成读写,流的读取操作用FileOutputStream,写入操作用
FileInputStream,基本操作与RAF相似——读取文件中的字节:FIS.read(),返回的是int型数据的低八位。Fis.read(data)则会对data数组进行操作
并返回当次存入字节数量。

当需要写入int型数据时,由于两者的read方法皆只能读取到低八位,但RAF有封装writeInt的方法,可直接传入要写入的值。而FOS则需通过逻辑右移符
单独获取每一个字节再写入。

当写入字符串时:
字符串再程序内定义,可直接使用str.getBytes("指定编码形式")获取字节数组
字符串在外部文件中,RAF和输出流可用read()方法获取字节后传入,RAF可定义字节数组提高单次读取量,输出流FOS可加载缓冲流提高单次读取量。
且输出流的写入操作默认为覆盖模式,可在构造时声明true更改为追加模式。

当文件在外部,一次读取量小于缓存流本身的数组数时,BOS不会继续写入,除非使用flush()强制将已缓存字节数据写入。(适用于即时应用场景,如
聊天室,每次输入的内容不管少多都要发送出去,而复制文件时则需每次都将数组填满以达到利用最大化的目的)

posted @ 2017-08-30 23:10  清及  阅读(98)  评论(0编辑  收藏  举报