InputStream
是 Java 中的一个抽象类,它主要用于从数据源(如文件、网络连接等)读取数据。在文件读写操作中,InputStream
的应用主要包括以下几个方面:
FileInputStream
类,它是 InputStream
的子类,可以从文件中读取数据。通常与 BufferedReader
或 DataInputStream
结合使用,以便更高效地读取文本文件或二进制文件。import java.io.*;
public class ReadFileExample {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("example.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
InputStream
的子类,如 URLConnection
类的 getInputStream()
方法返回的 InputStream
。import java.io.*;
import java.net.URL;
import java.net.URLConnection;
public class NetworkReadExample {
public static void main(String[] args) {
try {
URL url = new URL("https://example.com");
URLConnection connection = url.openConnection();
InputStream inputStream = connection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ClassLoader
类的 getResourceAsStream()
方法获取 InputStream
。import java.io.*;
public class ResourceReadExample {
public static void main(String[] args) {
ClassLoader classLoader = ResourceReadExample.class.getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("resources/example.txt");
if (inputStream != null) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("Resource file not found.");
}
}
}
总之,InputStream
在文件读写操作中的应用非常广泛,可以用于读取文件、网络数据和资源文件。在实际开发中,根据不同的数据源选择合适的 InputStream
子类,并结合其他工具类(如 BufferedReader
、DataInputStream
等)进行高效的数据读取。