java io 试题_Java IO流面试题

java io 试题_Java IO流面试题字节流与字符流的不同是他们的处理方式,字节流是最基本的,采用ASCII编码。但是实际上很多数据是文本,所以提出字符流的概念,采用unicode编码两者之间通过inputStreamReader与outputStreamWriter来关联,实际上是通过byte[]与String来关联字节流输出:程序–>字节流–>文件字符流输出:程序–>字符流–>缓冲–>文件程序中所有…

大家好,又见面了,我是你们的朋友全栈君。

字节流与字符流的不同是他们的处理方式,字节流是最基本的,采用ASCII编码。

但是实际上很多数据是文本,所以提出字符流的概念,采用unicode编码

两者之间通过inputStreamReader与outputStreamWriter来关联,实际上是通过byte[]与String来关联

字节流输出: 程序–>字节流–>文件

字符流输出:程序–>字符流–>缓冲–>文件

程序中所有的数据都是以流的方式进行传输与保存的

在关闭字符流后会强制性的将缓冲区的数据输出,若没有关闭缓冲区的内容是无法输出的,

如果想不关闭并且还想输出缓冲区的内容,用writer类的flush()方法来完成,

try{

fis=new FileInputStream(“c:\\db\\hello.txt”);     //存在的

fos=new FileOnputStream(“c:\\hello.txt”);       //需要的

}

.java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

字节输入流:InputStream,字节输出流:OutputStream

字符输入流:Reader,字符输出流:Writer

.解释一下java.io.Serializable接口(面试常考)

类通过实现 Java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。

1.PrintStream、BufferedWriter、PrintWriter的比较?

PrintStream类的输出功能非常强大,通常如果需要输出文本内容,都应该将输出流包装成PrintStream后进行输出。

与其他输出流不同,PrintStream 永远不会抛出 IOException;而是,异常情况仅设置可通过 checkError 方法测试的内部标志

另外,为了自动刷新,可以创建一个 PrintStream

BufferedWriter:将文本写入字符输出流,缓冲各个字符从而提供单个字符,数组和字符串的高效写入。通过write()方法可以将获取到的字符输出,然后通过newLine()进行换行操作。BufferedWriter中的字符流必须通过调用flush方法才能将其刷出去。并且BufferedWriter只能对字符流进行操作。如果要对字节流操作,则使用BufferedInputStream。

PrintWriter的println方法自动添加换行,不会抛异常,若关心异常,需要调用checkError方法看是否有异常发生,PrintWriter构造方法可指定参数,实现自动刷新缓存(autoflush);

.什么是java序列化,如何实现java序列化?

Java对象的序列化指将一个java对象写入OI流中,与此对应的是,对象的反序列化则从IO流中恢复该java对象。

如果要让某个对象支持序列化机制,则必须让它的类是可序列化的,为了让某个类是可序列化的,该类必须实现Serializable接口或Externalizable接口

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129934.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言中的strstr函数的用法「建议收藏」

    C语言中的strstr函数的用法「建议收藏」strstr(str1,str2)函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。PHP语言函数编辑strstr()函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回false。语法

    2022年6月25日
    41
  • lockfree 的队列的实现

    lockfree 的队列的实现一个高速无锁循环队列的实现。需要注意的是:(1)队列的大小(m_lMaxQueueSize)应该足够的大,避免处理不过来时,找半天找不到空位置。(2)还有一点是这种队列在push数据足够快时效率高点,不然pop时就阻塞了,改善的方式就是使用费阻塞的方式,判断几次没有就跳出去,还有这种队列也就在push数据足够快时效率高点,不然判断的次数就多了。(3)使用了原子操作的锁(4)需…

    2022年7月19日
    20
  • Selenium WebDriver下载与安装[通俗易懂]

    Selenium WebDriver下载与安装[通俗易懂]1.python(anaconda环境)condainfo–envsactivateuntitled2.pip/condainstallselenium3.seleniumdriver(放在anaconda环境path中)Chrome(32位)http://chromedriver.storage.proxy.ustclug.org/index.htmlFire…

    2022年9月19日
    0
  • Android 自定义流式布局

    Android 自定义流式布局自定义流式布局自定义流式布局 处理 margin 值 支持 addView 和 XML 布局 代码实现 publicclassT privatefinal ChildInfo childrenInfo newArrayList lt gt publicTagLay Contextconte super context pub ChildInfo

    2025年7月27日
    2
  • 虚拟存储容量_虚存空间的最大容量

    虚拟存储容量_虚存空间的最大容量虚拟存储的容量受到下列哪一个因素的限制影响最大?DA. 磁盘空间大小B. 物理内存大小C. 数据存放的实际地址D. 计算机地址位数分析:这题应该是计算机地址位数才对。从影响上讲:虚存容量=min(2^计算机位数,内存+外存);  根据程序执行的互斥性和局部性两个特点,我们允许作业装入的时候只装入一部分,另一部分放在磁盘上,当需要的时候再装入到主存,这样以来,

    2022年9月26日
    0
  • 圆柱的体积计算公式是什么怎么计算_圆柱计算体积的公式

    圆柱的体积计算公式是什么怎么计算_圆柱计算体积的公式长方形的周长=(长宽)×2正方形的周长=边长×4长方形的面积=长×宽正方形的面积=边长×边长三角形的面积=底×高÷2平行四边形的面积=底×高梯形的面积=(上底下底)×高÷2直径=半径×2半径=直径÷2圆的周长=圆周率×直径=圆周率×半径×2圆的面积=圆周率×半径×半径长方体的表面积=(长×宽长×高+宽×高)×2长方体的体积=长×宽×高正方体的表面积=棱长×棱长×6正方体的体积=棱长×棱长…

    2022年9月20日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号