JavaIO函数库:读写文件、网络编程等
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协议的客户端和服务器端通信。客户端向服务器端发送一条消息,服务器端接收并输出该消息。
