Java中IO流解析及代码实例详解
什么是Java中的IO流?
Java中的IO流是在文件系统、网络等输入/输出流通道中进行数据传输的方式,Java中的IO流提供了对数据的字节和字符等级别的访问,包括对文件系统和网络的字节和字符输入/输出流通道的访问。
Java中的IO流分为字节流和字符流两种,字节流与底层操作系统直接交互,因此具有较高的性能,而字符流通过对字节的包装,使得字符流在处理文本类型的数据时更加方便。
Java中的IO流继承结构
Java中的IO流提供了两个基本类来处理字节级和字符级操作:InputStream和OutputStream、Reader和Writer
InputStream
:提供从输入流读取字节的基本方法。所有的输入流类都是从 InputStream 类派生出来的。OutputStream
:提供向输出流写入字节的基本方法。所有的输出流类都是从OutputStream 类派生出来的。Reader
:抽象类提供从输入流读取字符的方法,所有的字符输入流类都是从 Reader 类派生出来的。Writer
:抽象类提供写入字符到输出流的方法,所有的字符输出流类都是从 Writer 类派生出来的。
Java IO流操作
Java中IO流的操作分为以下两种:
字节流操作
字节流操作是Java IO流中的一大类,可以考虑将字节流看作为一条管道,数据可以在管道中流通和传输,Java中使用 InputStream 和 OutputStream 类来实现字节流的处理。
-
字节输出流:OutputStream
字节输出流是用于向外进行数据输出的流,它可以将Java程序中的数据以字节形式输出到文件或者网络Socket中。常用的子类有FileOutputStream和ByteArrayOutputStream。 -
字节输入流:InputStream
字节输入流是用于接收外界输入数据的流,从文件、Socket等数据源中读取字节流数据,进行输出。常用的子类有FileInputStream和ByteArrayInputStream。
字符流操作
字符流操作是Java中IO流中进行文本数据读取的流,它采用了跨平台的码表来进行读取操作,Java文本默认采用UTF-8编码方式进行文本的读取和输出。Java中使用 Reader 和 Writer 类来实现字符流的处理。
-
字符输出流:Writer
字符输出流是用于向外进行文本输出的流,它可以将Java程序中的文本以字符输出形式输出到文件或者网络Socket中。常用的子类有FileWriter和CharArrayWriter。 -
字符输入流:Reader
字符输入流是用于文本数据的读取流,从文件、Socket等数据源中读取文本数据,进行输出。常用的子类有FileReader和CharArrayReader。
Java IO流代码示例
字节流操作示例
下面是采用 InputStream 和 OutputStream 读写文件的示例代码:
import java.io.*;
public class IODemo {
public static void main(String[] args) {
try {
// 读取文件字节流
InputStream inputStream = new FileInputStream("test.txt");
byte[] bytes = new byte[1024];
inputStream.read(bytes);
System.out.println(new String(bytes));
inputStream.close();
// 写入文件字节流
OutputStream outputStream = new FileOutputStream("test.txt");
outputStream.write("Hello World".getBytes());
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
字符流操作示例
下面是采用 Reader 和 Writer 读写文件的示例代码:
import java.io.*;
public class IODemo {
public static void main(String[] args) {
try {
// 读取文件字符流
Reader reader = new FileReader("test.txt");
char[] chars = new char[1024];
reader.read(chars);
System.out.println(new String(chars));
reader.close();
// 写入文件字符流
Writer writer = new FileWriter("test.txt");
writer.write("Hello World");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上两个示例分别展示了在Java中如何进行字节流和字符流的操作,需要注意的是,文件操作时需要使用 try-catch 块包裹读写操作,避免出现异常导致程序崩溃。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中IO流解析及代码实例详解 - Python技术站