📅  最后修改于: 2023-12-03 15:31:30.961000             🧑  作者: Mango
Java是一种对象导向的高级语言,具有强大的输入输出(IO)操作。Java输入输出库提供了各种用于读写文件和网络连接的类和接口。本文将介绍Java的IO体系结构,以及其使用的示例,以便程序员熟悉它们并有效地利用它们。
Java IO体系结构包括以下核心概念:
流:Java IO体系结构使用流来处理输入输出。流是一系列有序的数据元素,从源到目标的传输称为流。Java中有两种类型的流:字节流和字符流。
字节和字符:Java将所有数据视为字节序列,并使用字符集将其转换为字符。
InputStream和OutputStream:InputStream和OutputStream是Java中用于字节流的抽象类。InputStream读取数据,而OutputStream写入数据。
Reader和Writer:Reader和Writer是Java中用于字符流的抽象类。Reader读取字符,而Writer写入字符。
文件IO:Java提供了各种用于读写文件的类和接口,例如FileReader,FileWriter,BufferedReader和BufferedWriter。
网络IO:Java提供了各种用于读写网络连接的类和接口,例如Socket和ServerSocket。
以下示例演示了如何使用Java IO库。
下面的Java代码演示了如何使用Java IO库从文件中读取:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileDemo {
public static void main(String[] args) throws IOException {
String fileName = "file.txt";
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
}
下面的Java代码演示了如何使用Java IO库向文件中写入数据:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteFileDemo {
public static void main(String[] args) throws IOException {
String fileName = "file.txt";
String data = "Hello, world!";
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
writer.write(data);
writer.close();
}
}
下面的Java代码演示了如何使用Java IO库从网络连接中读取:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class ReadNetworkDemo {
public static void main(String[] args) throws IOException {
String urlString = "https://www.google.com";
URL url = new URL(urlString);
URLConnection connection = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
}
下面的Java代码演示了如何使用Java IO库向网络连接中写入数据:
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class WriteNetworkDemo {
public static void main(String[] args) throws Exception {
String host = "www.google.com";
int port = 80;
Socket socket = new Socket(host, port);
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
String data = "GET / HTTP/1.1\r\nHost: " + host + "\r\n\r\n";
writer.print(data);
writer.flush();
socket.close();
}
}
Java IO库提供了丰富的输入输出功能,可用于处理文件和网络连接。本文介绍了Java IO体系结构以及使用Java IO库的示例。希望本文对Java程序员有所帮助。