InputStream
此抽象类是表示字节输入流的所有类的超类。需要定义 InputStream 的子类的应用程序必须始终提供返回下一个输入字节的方法。
int available()
返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数。
void close()
关闭此输入流并释放与该流关联的所有系统资源。
void mark(int readlimit)
在此输入流中标记当前的位置。
boolean markSupported()
测试此输入流是否支持 mark 和 reset 方法。
abstract int read()
从输入流读取下一个数据字节。
int read(byte[] b)
从输入流中读取一定数量的字节并将其存储在缓冲区数组 b 中。
int read(byte[] b, int off, int len)
将输入流中最多 len 个数据字节读入字节数组。
void reset()
将此流重新定位到对此输入流最后调用 mark 方法时的位置。
long skip(long n)
跳过和放弃此输入流中的 n 个数据字节。
OutputStream
此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。需要定义OutputStream 子类的应用程序必须始终提供至少一种可写入一个输出字节的方法。
void close()
关闭此输出流并释放与此流有关的所有系统资源。
void flush()
刷新此输出流并强制写出所有缓冲的输出字节。
void write(byte[] b)
将 b.length 个字节从指定的字节数组写入此输出流。
void write(byte[] b, int off, int len)
将指定字节数组中从偏移量 off 开始的 len 个字节写入此输出流。
abstract void write(int b)
将指定的字节写入此输出流。
进行I/O操作时可能会产生I/O例外,属于非运行时例外,应该在程序中处理。如:FileNotFoundException, EOFException, IOException等等,下面具体说明操作JAVA字节流的方法。
读文件:
本例以FileInputStream的read(buffer)方法,每次从源程序文件OpenFile.java中读取512个字节,存储在缓冲区buffer中,再将以buffer中的值构造的字符串new String(buffer)显示在屏幕上。程序如下(本例程序放在包biz.1cn.stream里面,另外请在根目录下建立TestFile.txt文件,以便正常运行):
- package biz.1cn.stream;
-
import java.io.FileInputStream;
-
import java.io.IOException;
-
-
-
-
-
-
-
-
public class ReadFile {
-
public static void main(String[] args) {
-
try {
-
-
FileInputStream is = new FileInputStream("TestFile.txt");
-
-
int n = 512;
-
byte buffer[] = new byte[n];
-
-
while ((is.read(buffer, 0, n) != -1) && (n > 0)) {
-
System.out.print(new String(buffer));
- }
- System.out.println();
-
- is.close();
-
} catch (IOException ioe) {
- System.out.println(ioe);
-
} catch (Exception e) {
- System.out.println(e);
- }
- }
- }
package biz.1cn.stream;
import java.io.FileInputStream;
import java.io.IOException;
/**
* @author chenrz(simon)
* @date 2006-6-29
* <p>
* JAVA字节流例子-读文件(www.1cn.biz)
* </p>
*/
public class ReadFile {
public static void main(String[] args) {
try {
// 创建文件输入流对象
FileInputStream is = new FileInputStream("TestFile.txt");
// 设定读取的字节数
int n = 512;
byte buffer[] = new byte[n];
// 读取输入流
while ((is.read(buffer, 0, n) != -1) && (n > 0)) {
System.out.print(new String(buffer));
}
System.out.println();
// 关闭输入流
is.close();
} catch (IOException ioe) {
System.out.println(ioe);
} catch (Exception e) {
System.out.println(e);
}
}
}
写文件:
本例用System.in.read(buffer)从键盘输入一行字符,存储在缓冲区buffer中,再以FileOutStream的write(buffer)方法,将buffer中内容写入文件WriteFile.txt中,程序如下(本例程序放在包biz.1cn.stream里面,另外运行后会在根目录下建立WriteFile.txt文件):
- package biz.1cn.stream;
-
import java.io.FileOutputStream;
-
import java.io.IOException;
-
-
-
-
-
-
-
-
public class WriteFile {
-
public static void main(String[] args) {
-
try {
-
System.out.print("输入要保存文件的内容:");
-
int count, n = 512;
-
byte buffer[] = new byte[n];
-
- count = System.in.read(buffer);
-
-
FileOutputStream os = new FileOutputStream("WriteFile.txt");
-
-
os.write(buffer, 0, count);
-
- os.close();
-
System.out.println("已保存到WriteFile.txt!");
-
} catch (IOException ioe) {
- System.out.println(ioe);
-
} catch (Exception e) {
- System.out.println(e);
- }
- }
- }
来源:http://ily0123456.iteye.com/blog/689568
分享到:
相关推荐
本文将深入探讨C++、Java、PHP和C#这四种语言在网络字节流读写文件方面的实现,以及它们各自的特点和差异。 首先,让我们从C++开始。C++提供了一系列的标准库函数来处理文件输入/输出,如`fstream`类。为了在网络中...
- `DataInputStream` 和 `DataOutputStream` 允许从字节流读写基本数据类型(如int, float, double等)。 - `BufferedReader` 和 `BufferedWriter` 提供缓冲功能,提高读写性能,可以一次处理更多数据。 - `...
在Java编程中,字节流(Byte Stream)是处理数据的基本方式,特别是在处理二进制数据,如图片、音频或视频文件时。本教程将详细讲解如何使用Java实现字节流来转换和处理图片。 首先,我们需要理解字节流的概念。在...
### Java字符流和字节流详解 #### 一、引言 在Java中,I/O流主要用于处理输入输出操作,包括文件读写等。根据处理数据类型的不同,Java I/O流主要分为字节流和字符流两大类。字节流处理的是8位的字节数据,而字符流...
在Java编程语言中,字节流(Byte Stream)是I/O操作的基础,它处理的是单个字节的数据。...通过学习和理解这段代码,开发者可以深入理解Java字节流的工作原理,提升在处理二进制数据和网络通信时的能力。
Java的IO流主要分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理的是8位的数据,而字符流处理的是16位的Unicode字符。这两类流又分别分为输入流(InputStream/Reader)和输出流...
JAVA IO流可以分为两大类:字节流和字符流。 * 字节流:以字节为单位进行读写操作,主要用来处理二进制文件,如图片、音频、视频等。常用的字节流类有FileInputStream、FileOutputStream等。 * 字符流:以字符为...
在Java编程语言中,输入/输出(I/O)操作是处理数据流的关键部分,而字符流与字节流则是实现这些操作的两种基本方式。理解它们的区别和应用场景对于任何Java开发者来说都是至关重要的。 ### 字节流 字节流是最基本...
字节流是指以 byte 为单位进行读写操作的流,而字符流是指以 char 为单位进行读写操作的流。 字节流的介绍 字节流的所有读操作都继承自一个公共超类 java.io.InputStream 类。所有的写操作都继承自一个公共超类 ...
### Java流(文件读写操作) #### 一、流的分类 Java中处理文件和数据时,使用流的概念来进行操作。根据不同的标准,流可以分为几种类型。 ##### 1. 按数据流动方向 - **输入流**:主要用于从数据源读取数据。输入...
1. **FileInputStream** 和 **FileOutputStream**:这是Java中最基础的字节流类,用于读写文件。例如,使用FileInputStream可以从文件中读取字节,而FileOutputStream则用于向文件写入字节。 ```java ...
本资料“javaIO字节流读取文件方式总结共4页.pdf”详细介绍了Java字节流在读取文件时的各种方法和应用场景。本文将深入探讨这些知识点。 首先,Java中的字节流分为输入流(InputStream)和输出流(OutputStream)。...
该代码源码资源是一个用于讲解Java IO流的示例代码库。它包含了常见的IO类和方法的使用...通过研究这些代码示例,读者将能够了解如何使用不同类型的IO类来进行文件读写、字符流、字节流、网络传输等各种常见的IO操作。
字节流主要用于处理任何类型的原始数据,如图片、音频文件或者二进制文件,而字符流则专注于处理基于文本的数据。本文将深入探讨这两类流的原理、用途以及它们之间的关联。 首先,我们来看字节流。字节流由...
### Java IO字符流和字节流详解 #### 一、引言 在Java编程中,输入输出(简称IO)操作是十分重要的一个方面。通过IO操作,我们可以读取文件、网络数据、用户输入等,也可以将数据写入到文件、网络、控制台等。Java...
Java的IO流设计用于读写文件内容,分为两大类:字节流和字符流。本篇文章主要介绍字节流的相关类型和使用场景。 2. 字节流基类 字节流基类包括InputStream和OutputStream,分别作为读字节流和写字节流的基类。所有...
### Java中的字节流 #### 一、字节流简介 ...通过以上介绍,我们可以看到Java中的字节流提供了非常灵活的方式来处理文件和其他数据源的读写操作。开发者可以根据具体需求选择合适的类来进行数据的处理。
总的来说,Java的IO操作包括了对文件的打开、读写以及关闭等步骤,无论使用字节流还是字符流,都需要确保在操作完成后关闭流,以释放系统资源。流的关闭一般通过调用`close()`方法实现。在实际编程中,应该注意异常...
FileInputStream和FileOutputStream则用于读写文件内容。 NIO(New IO)是Java的一个重要特性,引入了通道(Channel)和缓冲区(Buffer)的概念,提供了非阻塞I/O操作。通道类似于流,但可以同时读写,而缓冲区则...
在Java编程中,I/O(Input/...综上所述,Java的字节流和字符流是进行文件操作的基础,它们可以处理不同类型的数据,并且通过各种方法实现文件的读写操作。掌握它们的使用对于进行高效的文件处理和程序设计至关重要。