Paths 和 Files 在 Java 7 的时候引入,作为对 java.io.File
类的补充和改进。
Paths 类
Paths 类主要用于操作文件和目录路径。它提供了一些静态方法,用于创建java.nio.file.Path
实例,代表文件系统中的路径。
下面是 Paths 的一个示例。
Paths 和 Files 在 Java 7 的时候引入,作为对 java.io.File
类的补充和改进。
Paths 类主要用于操作文件和目录路径。它提供了一些静态方法,用于创建java.nio.file.Path
实例,代表文件系统中的路径。
下面是 Paths 的一个示例。
对于 Java 的序列化,我之前一直停留在最浅层次的认知上——把那个要序列化的类实现 Serializbale
接口就可以了嘛。
我似乎不愿意做更深入的研究,因为会用就行了嘛。
但随着时间的推移,见到 Serializbale
的次数越来越多,我便对它产生了浓厚的兴趣。是时候花点时间研究研究了。
转换流可以将一个字节流包装成字符流,或者将一个字符流包装成字节流。这种转换通常用于处理文本数据,如读取文本文件或将数据从网络传输到应用程序。
转换流主要有两种类型:InputStreamReader 和 OutputStreamWriter。
在我的职业生涯中, System.out.println()
的使用频率恐怕不亚于 main 方法的使用频率。其中 System.out
返回的正是打印流 PrintStream
。
除此之外,还有它还有一个孪生兄弟,PrintWriter。PrintStream 是 OutputStream 的子类,PrintWriter 是 Writer 的子类,也就是说,一个字节流,一个是字符流。
Java 的序列流(ObjectInputStream 和 ObjectOutputStream)是一种可以将 Java 对象序列化和反序列化的流。
序列化是指将一个对象转换为一个字节序列(包含对象的数据
、对象的类型
和对象中存储的属性
等信息),以便在网络上传输或保存到文件中,或者在程序之间传递。在 Java 中,序列化通过实现 java.io.Serializable 接口来实现,只有实现了 Serializable 接口的对象才能被序列化。
害,小二最熟的是 Java,但很多 Java 基础知识都不知道,比如 transient 关键字以前就没用到过,所以不知道它的作用是什么,今天去招银面试的时候,面试官问到了这个:说说 Java 的 transient 关键字吧,结果小二直接懵逼了。
下面是他自己面试凉了以后回去做的总结,分享出来,大家一起涨下姿势~~~好了,废话不多说,下面开始:
我们知道,一个对象只要实现了 Serilizable 接口,它就可以被序列化。
Java 的缓冲流是对字节流和字符流的一种封装,通过在内存中开辟缓冲区来提高 I/O 操作的效率。Java 通过 BufferedInputStream 和 BufferedOutputStream 来实现字节流的缓冲,通过 BufferedReader 和 BufferedWriter 来实现字符流的缓冲。
缓冲流的工作原理是将数据先写入缓冲区中,当缓冲区满时再一次性写入文件或输出流,或者当缓冲区为空时一次性从文件或输入流中读取一定量的数据。这样可以减少系统的 I/O 操作次数,提高系统的 I/O 效率,从而提高程序的运行效率。
字符流 Reader 和 Writer 的故事要从它们的类关系图开始,来看图。
字符流是一种用于读取和写入字符数据的输入输出流。与字节流不同,字符流以字符为单位读取和写入数据,而不是以字节为单位。常用来处理文本信息。
如果用字节流直接读取中文,可能会遇到乱码问题,见下例:
在 IO 操作中,文件的操作相对来说是比较复杂的,但也是使用频率最高的部分,我们几乎所有的项目中几乎都躺着一个叫做 FileUtil 或者 FileUtils 的工具类。
java.io.File
类是专门对文件进行操作的类,注意只能对文件本身进行操作,不能对文件内容进行操作,想要操作内容,必须借助输入输出流。
File
类是文件和目录的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
怎么理解上面两句话?其实很简单!
第一句是说 File 跟流无关,File 类不能对文件进行读和写,也就是输入和输出!
我们必须得明确一点,一切文件(文本、视频、图片)的数据都是以二进制的形式存储的,传输时也是。所以,字节流可以传输任意类型的文件数据。
java.io.OutputStream
是字节输出流的超类(父类),我们来看一下它定义的一些共性方法:
1、 close()
:关闭此输出流并释放与此流相关联的系统资源。
2、 flush()
:刷新此输出流并强制缓冲区的字节被写入到目的地。