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


相关推荐

  • XGBoost简介

    XGBoost简介本文据此对XGBoost的原理做简单的介绍…XGBoost[1]是2014年2月诞生的专注于梯度提升算法的机器学习函数库,此函数库因其优良的学习效果以及高效的训练速度而获得广泛的关注。仅在2015年,在Kaggle[2]竞赛中获胜的29个算法中,有17个使用了XGBoost库,而作为对比,近年大热的深度神经网络方法,这一数据则是11个。在KDDCup2015[3]竞赛中,排

    2022年6月1日
    102
  • bilstm模型怎么用_BI模型

    bilstm模型怎么用_BI模型本文着眼于内部计算过程而不是数据原理,分别总结了RNN,BiRNN,LSTM以及BiLSTM等神经网络模型内部结构。

    2025年10月18日
    1
  • sql中三种去重的方式_三种重采样方法的特点

    sql中三种去重的方式_三种重采样方法的特点点击关注上方“逆锋起笔”,设为“置顶或星标”,第一时间送达干货blog.csdn.net/xienan_ds_zj/article/details/103869048作者:程序员的成长之路…

    2022年9月18日
    2
  • Python15行代码实现免费发送手机短信,推送消息「建议收藏」

    Python15行代码实现免费发送手机短信,推送消息

    2022年2月13日
    44
  • 一定要看

    一定要看前言(一定要看)首先说一下啊,本人是个菜鸟,但自认是一个懂的上进的菜鸟,现在对游戏开发或多或少懂了一丁点吧。现在把我的资料全部上传,也许大家会觉得,资料有的网上都有吧,也许觉得资料没什么用吧,这个确实。但一个资料只要有一点点对你有用我就满意了,就够了。为了方便大家下载,小文件我都是打包了,没有任何的密码之类的。学习的资料不管是好的还是不好的我都上传了,这些是我从0开始学的东

    2022年7月16日
    14
  • clover直接进windows_黑苹果CLOVER引导去除多余引导项Windows10 MacOS DeepinLinux Fyde…「建议收藏」

    现在新的电脑安装系统,引导方式都改为了EFI,至于EFI和MBR引导的区别可以自行度娘。用了EFI引导安装黑苹果(关于黑苹果的安装,除非你喜欢折腾,否则建议直接找某宝,几十块十几分钟就能装好)自然就会使用CLOVER.但是CLOVER的默认添加启动项的方式,在安装完多系统后,就会有冗余。先看两张效果图吧。优化前:优化后:由于我目前这个电脑不仅安装了Windows和MAC,还装了别的Linux系统。…

    2022年4月13日
    453

发表回复

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

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