欢迎访问宙启技术站
智能推送

JavaIO函数库:读写文件、网络编程等

发布时间:2023-06-15 01:40:33

Java IO函数库是Java中用于读写文件、网络编程等功能的函数库。它包含了多种实用的类和接口,可以让我们轻松地进行文件读写、网络通信等操作。

Java IO函数库的主要类有File类、InputStream类、OutputStream类、Reader类和Writer类。下面我们来逐个介绍。

1. File类

File类是Java中用来操作文件和目录的类。我们可以使用File类来创建、删除、重命名文件或目录,以及查询文件和目录的信息。

示例:

File file = new File("c:/test.txt");
file.createNewFile();

上面的代码创建了一个名为test.txt的文件,并将其保存在c盘根目录下。

2. InputStream类

InputStream类是Java中读取字节流的抽象类。它提供了多种读取字节流的方法,如read()、read(byte[] b)、read(byte[] b, int off, int len)等,可以读取文件、网络、管道等数据源。

示例:

InputStream inputStream = new FileInputStream("c:/test.txt");
byte[] b = new byte[1024];
int len = inputStream.read(b);

上面的代码从c盘下的test.txt文件中读取字节流,并将其存储在byte数组中。

3. OutputStream类

OutputStream类是Java中输出字节流的抽象类。它提供了多种写入字节流的方法,如write(int b)、write(byte[] b)、write(byte[] b, int off, int len)等,可以将数据写入文件、网络、管道等数据源。

示例:

OutputStream outputStream = new FileOutputStream("c:/test.txt");
String str = "hello world!";
byte[] b = str.getBytes();
outputStream.write(b);

上面的代码将一个字符串“hello world!”写入到c盘下的test.txt文件中。

4. Reader类

Reader类是Java中读取字符流的抽象类。它提供了多种读取字符流的方法,如read()、read(char[] cbuf)、read(char[] cbuf, int off, int len)等,可以读取文件、网络、管道等数据源。

示例:

Reader reader = new FileReader("c:/test.txt");
char[] cbuf = new char[1024];
int len = reader.read(cbuf);

上面的代码从c盘下的test.txt文件中读取字符流,并将其存储在char数组中。

5. Writer类

Writer类是Java中输出字符流的抽象类。它提供了多种写入字符流的方法,如write(int c)、write(char[] cbuf)、write(char[] cbuf, int off, int len)等,可以将数据写入文件、网络、管道等数据源。

示例:

Writer writer = new FileWriter("c:/test.txt");
String str = "hello world!";
writer.write(str);

上面的代码将一个字符串“hello world!”写入到c盘下的test.txt文件中。

6. 网络编程

Java IO函数库还提供了多种网络编程相关的类和接口,如Socket类、ServerSocket类、InetAddress类等。我们可以使用它们来实现基于TCP或UDP协议的客户端和服务器端通信。

示例:

客户端代码:

Socket socket = new Socket("127.0.0.1", 8888);
OutputStream outputStream = socket.getOutputStream();
String message = "hello world!";
byte[] b = message.getBytes();
outputStream.write(b);
socket.close();

服务器端代码:

ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
byte[] b = new byte[1024];
int len = inputStream.read(b);
String message = new String(b, 0, len);
System.out.println("客户端发送的消息是:" + message);
socket.close();
serverSocket.close();

上面的代码实现了一个简单的基于TCP协议的客户端和服务器端通信。客户端向服务器端发送一条消息,服务器端接收并输出该消息。