一、字符流与字节流
字符流只能处理文字,字节流可以处理everything
二、字节流
1、输入流: InputStream FileInputStream 必须确保文件存在 + BufferedInputStream
方法:
read() :一个字节读取 ,返回的字符unicode码
read(byte[] b):一段一段读取,返回读取大小
2、输出流:OutputStream FileOutputStream 文件不存在,内部创建 +BufferedOutputStream
方法:
write(int b) :一个字节写出
write(byte[] b):一段写出,整个数组
write(byte[] b, int off, int len) :部分数组
flush():强制刷新,避免最后的数据驻留在管道中
close() : 关闭流,内部一定会flush()
三、字符流:只能读取纯文本,不能读取图片、doc等二进制文件
1、输入流:Reader FileReader +BufferedReader
read() :一个字符读取
read(char[] cbuf) :一段一段读取,返回读取大小
close() :关闭流
新增方法: readLine() 不能使用多态
2、输出流:Writer FileWriter +BufferedWriter
FileWriter(路径|File对象[,追加标识false]) ps:追加标示符为true的时候,表示在文件原有的基础上继续添加。如果不写,那么表示在覆盖原有的东西
方法:
write(int c) :一个字符
append(char c) ps:传一个string类型也可以
write(char[] cbuf) :一段写出,整个数组
write(char[] cbuf, int off, int len) :部分数组
write(String str) :字符串
append(CharSequence csq)
write(String str, int off, int len) :子串
append(CharSequence csq, int start, int end)
flush():强制刷新,避免最后的数据驻留在管道中
close() : 关闭流,内部一定会flush()
新增方法: newLine() 换行符 \r\n 不能使用多态
四、转换流
转换流:字节流转为字符流:字节流通向字符流的桥梁. 可以指定字符集,编码与解码字符集
一、输入流:InputStreamReader
InputStreamReader(InputStream in, String charsetName) :指定解码集
二、输出流:OuputStreamWriter
OutputStreamWriter(OutputStream out, String charsetName) :指定编码集
五、小结
六、节点流
1、输入流 ByteArrayInputStream
方法:
read()
read(byte[] b, int off, int len)
close()
2、输出流 ByteArrayOutputStream
方法:
write(byte[] b, int off, int len)
close()
toByteArray()ps:方法获取内存中存储的内容的地址
toString(String charsetName) ps:将缓冲区内的数据装换成字符串,按照默认的编码方式
七、基本类型+String
1、输入流:DataInputStream
方法:
read(byte[] b)
read(byte[] b, int off, int len)
readXxx() 数据类型
readUTF()
2、输出流:DataOutStream
方法:
write(byte[] b, int off, int len)
write(int b)
writeXxx()
writeUTF(String str) 不会读取换行符
flush()
close()
必须先写出后读取,读取顺序与写出一致
八、序列化与反序列化
序列化:对象保存到文件
ObjectOutputStream +writeObject()。序列化的类必须实现java.io.Serializable接口
transient可以讲序列化的类透明
反序列化:
ObjectInputStream+readObject()
反序列化的方法必须使用object引用接受,在进行强制类型转化
相关推荐
在"VIP09_JavaSE_JavaIO_File_day0307-1.rar"这个压缩包中,我们可以预想它包含的是一个关于Java IO和File类的课程或教程的第三天第七节的内容。下面,我们将深入探讨Java IO和File类的相关知识点。 1. **Java IO...
### JavaSE中的IO操作——类层次与缓冲流 在Java标准版(JavaSE)中,I/O操作是处理文件和数据的重要方式之一。本篇主要介绍Java中的IO操作中的类层次结构以及缓冲流的使用。 #### 类层次结构 Java IO体系主要...
这个编程资料包涵盖了JavaSE的学习资源,旨在帮助开发者掌握Java的基础知识、集合框架、IO流等关键概念。 首先,Java基础知识是学习JavaSE的起点。这包括了Java语法、数据类型、控制结构(如if语句、for循环、while...
JavaSE(Java Standard Edition)是Java编程语言的核心部分,用于开发和部署桌面应用程序。JDK(Java Development Kit)是Java编程的工具集,包含了编译器、运行环境、调试工具和API文档等必要组件。本资源"JavaSE_...
7. **IO流**:Java的IO流库提供了读写文件、网络通信等功能。初学者可以从源代码中了解如何使用InputStream和OutputStream进行数据的读写。 8. **集合框架**:Java集合框架包括ArrayList、LinkedList、HashSet、...
JavaSE(Java Standard Edition)是Java编程语言的核心部分,它提供了编写桌面应用程序所需的基础类库。这份"JavaSE总结文档.rar"包含了一份个人在复习JavaSE时编写的笔记,覆盖了多个主题,旨在巩固和深化对Java...
Java语言进阶_javase_这部分的学习涵盖了Java标准版(Java SE)的高级特性,主要集中在类、流、文件操作和数据结构等多个方面。以下是对这些主题的详细解释: 1. **Object类**:所有Java类都直接或间接继承自Object...
2017版的Java SE API文档中,你会找到诸如`java.lang`、`java.util`、`java.io`、`java.net`等核心包的详细信息。 例如,`java.lang`包是最基础的包,包含了所有Java程序都必须使用的类,如`String`、`Object`和`...
JavaSE,全称为Java Standard Edition,是Java编程语言的核心部分,主要用来开发桌面应用程序。它提供了丰富的类库和API,让开发者能够构建高效、可移植的软件。在JavaSE中,"基础"涵盖了许多关键概念,包括但不限于...
例如,`java.util`包提供了集合类如ArrayList和HashMap,`java.io`包支持文件操作和数据流,`java.nio`包引入了非阻塞I/O,`java.lang`包包含基本类型和对象的基类,如Object和String。这些API是所有Java程序的基础...
在JavaSE的学习中,了解Java中常用类的使用对于构建一个健壮的应用程序是至关重要的。本节主要介绍了一些核心的Java包和类,以及Java对象模型中的基础概念。接下来,我们将详细探讨这些知识点。 首先,让我们来看看...
5. **IO流**:Java的输入/输出流系统支持对文件、网络、内存和系统资源的数据读写。包括字节流、字符流、对象流以及缓冲流等。 6. **多线程**:Java提供Thread类和Runnable接口来支持并发编程。通过线程池、同步...
使用Swing+javase中的socket、IO流、多线程等,实现的简单聊天室,可以群聊,也可以私聊。 使用Swing+javase中的socket、IO流、多线程等,实现的简单聊天室,可以群聊,也可以私聊。
JavaSE文件IO流详解
3. **NIO.2**:Java 7增强了非阻塞I/O(New IO)框架,引入了`java.nio.file`包,提供了文件系统操作的抽象,如路径处理、文件读写、文件观察者(WatchService)等。 4. **Try-with-resources**:这是一个新的异常...
3. **I/O流**:JavaSE6_API的`java.io`包包含了输入输出流的处理,包括字符流和字节流,如`FileInputStream`、`FileOutputStream`、`BufferedReader`、`PrintWriter`等。此外,NIO(New IO)在Java 6中引入,提供了...
本项目"JavaSe基于IO流的用户管理系统"就是利用Java的IO流技术来处理文本数据,实现用户信息的存储与管理。这个系统尤其适合大学生作为大作业或课程设计的实践项目,因为它的设计既简单易懂,又包含了Java 8的新特性...
- 非运行时异常:通常是由于程序运行环境的问题导致的,如 IO 异常。 - **异常处理**: - 使用 try-catch 块来捕获并处理异常。 - 可以使用 finally 块来执行清理工作。 #### 八、实战案例分析 - **案例一**:...