Java输入流和输出流是Java编程中的重要概念,它们可以帮助我们实现对文件、网络、内存和其他外部设备的数据传输。
Java输入流是一个抽象类,它用于读取来自文件、字节数组或其他来源的数据。它有一个子类InputStream,它可以读取字节流,并提供了一些方法来读取数据。InputStream有很多子类,如FileInputStream、BufferedInputStream、DataInputStream和ObjectInputStream。
Java输出流也是一个抽象类,用于将数据写入到文件、字节数组或其他目标中。它有一个子类OutputStream,它可以写入字节流,并提供了一些方法来写入数据。OutputStream也有很多子类,如FileOutputStream、BufferedOutputStream、DataOutputStream和ObjectOutputStream。
// 使用 FileInputStream 读取文件 File file = new File("test.txt"); FileInputStream fis = new FileInputStream(file); int data = fis.read(); // 读取单个字节 while (data != -1) { // 如果不是文件末尾则循环读取 System.out.print((char) data); // 将读取到的字节强制装换成 char 类型并打印出来 data = fis.read(); // 移动到下一个字节 } fis.close(); // 关闭文件流
抽象基本组件是InputStream类。
InputStream | +--FileInputStream | +--ByteArrayInputStream | +--PipedInputStream | +--FilterInputStream | +--BufferedInputStream | +--PushbackInputStream | +--DataInputStream | +--ObjectInputStream
我们有FileInputStream,ByteArrayInputStream和PipedInputStream,FilterInputStream的具体类。
超类InputStream包含从输入流读取数据的基本方法,所有具体类都支持这些方法。
对输入流的基本操作是从其读取数据。 InputStream类中定义的一些重要方法在下表中列出。
ID | 方法/说明 |
---|---|
1 | read() 读取一个字节并将读取的字节作为int返回。 当到达输入流的结尾时,它返回-1。 |
2 | read(byte[] buffer) 读取最大值直到指定缓冲区的长度。 它返回在缓冲区中读取的字节数。 如果到达输入流的结尾,则返回-1。 |
3 | read(byte [] buffer,int offset,int length) 读取最大值到指定长度字节。 数据从偏移索引开始写入缓冲区。 它返回读取的字节数或-1,如果到达输入流的结束。 |
3 | close() 关闭输入流 |
4 | available() 返回可以从此输入流读取但不阻塞的估计字节数。 |
Java IO教程 -Java数据输出流DataOutputStream可以将Java基本数据类型值写入输出流。DataOutputStream类包含一个写入数据类型的...
Java IO教程 -Java文件树FileVisitor API可以递归地处理文件树中的所有文件和目录。当我们要对文件树中的所有或某些文件或目录执...
Java 实例 - 连接字符串 Java 实例以下实例演示了通过"+" 操作符和StringBuffer.append() 方法来连接字符串,并比较其性能://St...
Java 实例 - 格式化时间(SimpleDateFormat) Java 实例以下实例演示了如何使用 SimpleDateFormat 类的 format(date) 方法来格式...