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)
上一篇 2022年4月25日 下午11:40
下一篇 2022年4月25日 下午11:40


相关推荐

  • 线程的状态及阻塞

    线程的状态及阻塞之前提到了线程和进程 那就提一下线程的状态吧 线程状态通常分为五种 注意 阻塞被消除后回到就绪状态 不是运行状态温馨提示 大家可以通过 getState 来获取线程当前的状态 NEW RUNNABLE BLOCKED WAITING TIMED WAITING TERMINATED 想要了解更多的线程知识 可以看看我写的上一篇线程与进程

    2026年3月19日
    2
  • Socket

    Socket

    2021年3月12日
    144
  • Dataway,让服务飞起来

    Dataway,让服务飞起来好记忆不如烂笔头 能记下点东西 就记下点 有时间拿出来看看 也会发觉不一样的感受 Dataway 介绍 Dataway 是基于 DataQL 服务聚合能力 为应用提供的一个接口配置工具 使得使用者无需开发任何代码就配置一个满足需求的接口 整个接口配置 测试 冒烟 发布 一站式都通过 Dataway 提供的 UI 界面完成 UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 htt

    2026年3月18日
    1
  • C语言malloc函数的功能及用法

    C语言malloc函数的功能及用法关于C语言malloc函数函数介绍应用举例1应用举例2函数介绍malloc(memoryallocation) 中文名称:动态内存分配用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。应用举例1关于C语言动态申请数组(整形数据类型)空间的应用#include<stdio…

    2022年6月9日
    45
  • mysql服务器的重启命令_命令模式启动/停止/重启MySQL服务器

    mysql服务器的重启命令_命令模式启动/停止/重启MySQL服务器mysql 可以在 linux 与 windows 中运行 下面我们先来介绍 windows 下利用命令模式启动 停止 重启 MySQL 服务器 然后再来介绍 linux 中启动 停止 重启 MySQL 服务器命令 一 启动方式 1 使用 service 启动 servicemysql 使用 mysqld 脚本启动 etc init d mysqlstart3 使用 safe mysqld 启动 saf

    2026年3月17日
    2
  • C 库函数 system/WIFEXITED/WEXITSTATUS

    C 库函数 system/WIFEXITED/WEXITSTATUS文章目录描述声明参数返回值实例 WIFEXITED WEXITSTATUS 函数 systerm 两层含义函数实例详解解释参考资料描述 C 库函数 intsystem constchar command 把 command 指定的命令名称或程序名称传给要被命令处理器执行的主机环境 并在命令完成后返回 声明下面是 system 函数的声明 include

    2026年3月19日
    2

发表回复

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

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