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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 光猫不改桥接外网能访问吗_光猫桥接的利弊

    光猫不改桥接外网能访问吗_光猫桥接的利弊因为群晖需要外网访问,将自购的路由器改为拨号上网,光猫设置为桥接模式。但这种情况下,因为路由的网段(我的是192.168.3.x)和光猫的网段(电信,默认192.168.1.x)不同,此时不能通过192.168.1.1网址来连接光猫,网上也有将光猫称作副路由。解决方法:1、在光猫中插入一根网线,通过有线的方式连接到电脑。现在的笔记本很多都不带RJ45网口,还需要另外准备转接头和网线。2、临时将路由的上网方式变更为自动获取,然后就可以连接192.168.1.1。这种方法的缺点是

    2022年10月8日
    1
  • XLSTransformer+模板 导出 Excel「建议收藏」

    XLSTransformer+模板 导出 Excel「建议收藏」java快速导出Excel 利用XLSTransformer+模板

    2022年7月24日
    8
  • Java四舍五入保留两位小数

    Java四舍五入保留两位小数文章目录Java四舍五入保留两位小数一、前言环境二、正文BigDecimalDecimalFormatMathcommons-math3String#formatJava四舍五入保留两位小数一、前言环境开发工具:IntelliJIDEAJDK:1.8BigDecimal:https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.htmlDecimalFormat:https://docs.oracle.com/java

    2022年5月21日
    34
  • linux过滤端口抓包_linux抓包命令tcpdump[通俗易懂]

    linux过滤端口抓包_linux抓包命令tcpdump[通俗易懂]tcpdump是一个功能强大的命令行数据包分析器,它是通过监听服务器的网卡来获取数据包,所有通过网络访问的数据包都能获取到。它也提供了过滤器的功能,可以获取指定的网络、端口或协议的数据包程序员日常排查问题,最常用的是使用过滤器功能获取指定端口的数据包,用来分析服务器是否收到请求、请求数据是否完整。参数介绍tcpdump命令的参数很多,详见如下这里只介绍一些常用的参数​-ccountcount表示…

    2022年8月20日
    9
  • java -jar 启动程序/设置classpath

    java -jar 启动程序/设置classpath前言在java-jar命令执行java程序时,制定classpath解决方案Java命令行提供了如何扩展bootStrap级别class的简单方法.-Xbootclasspath:完全取代基本核心的Javaclass搜索路径.不常用,否则要重新写所有Java核心class-Xbootclasspath/a:后缀。将classpath添加在核心cl…

    2022年6月1日
    201
  • Hi3516A开发–视频接口[通俗易懂]

    Hi3516A开发–视频接口[通俗易懂]参看:几种常用的视频接口我们经常在家里的电视机、各种播放器上,视频会议产品和监控产品的编解码器的视频输入输出接口上看到很多视频接口,这些视频接口哪些是模拟接口、哪些是数字接口,哪些接口可以传输高清图像等,下面就做一个详细的介绍。  目前最基本的视频接口是复合视频接口、S-vidio接口;另外常见的还有色差接口、VGA接口、接口、HDMI接口、SDI接口。  1、复合

    2022年5月15日
    58

发表回复

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

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