Java 读取外部资源的方法详解及实例代码
在Java中,可以通过多种方式读取外部资源,比如文件、网络数据等。本篇攻略将介绍Java中常用的读取外部资源的方法及实例代码。
读取本地文件
1. 使用 FileInputStream
FileInputStream 是一个用来打开文件以进行读取操作的类。下面是使用 FileInputStream 读取本地文件的方法:
import java.io.*;
public class ReadLocalFileExample {
public static void main(String[] args) {
try {
FileInputStream fileInputStream = new FileInputStream(new File("file.txt"));
byte[] content = new byte[fileInputStream.available()];
fileInputStream.read(content);
fileInputStream.close();
System.out.println(new String(content));
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个示例代码中,首先创建了一个 FileInputStream 对象用于读取指定文件。然后,使用 fileInputStream.available() 方法获取文件可读取的字节数,并将其作为一个字节数组的长度创建 byte 数组。接着,我们可以通过 FileInputStream.read() 方法读取指定数量的字节到 byte 数组中,并在最后将 byte 数组转换成字符串输出。
2. 使用 FileReader
FileReader 是一个用于打开文本文件以便读取的类。下面是使用 FileReader 读取本地文件的示例代码:
import java.io.*;
public class ReadLocalFileExample {
public static void main(String[] args) {
try {
FileReader fileReader = new FileReader(new File("file.txt"));
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
bufferedReader.close();
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个示例代码中,使用 FileReader 打开指定文本文件并使用 BufferedReader 包装以达到更高效的读取目的。读取文件的每一行,直到 BufferedReader 读取到文件末尾为止。在读取完成后,需要关闭 BufferedReader 和 FileReader 对象以确保资源能够被及时释放。
读取网络资源
1. 使用 URL 属性
Java 中的 URL 类可以用于定位互联网上的资源。下面是使用 URL 属性读取网络资源的示例代码:
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
public class ReadNetworkResourceExample {
public static void main(String[] args) {
try {
URL url = new URL("https://www.baidu.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
InputStream inputStream = connection.getInputStream();
Scanner scanner = new Scanner(inputStream);
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
scanner.close();
inputStream.close();
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这个示例代码使用 HttpURLConnection 打开一个 URL 连接,并获取连接的输入流。Scanner 遍历输入流并输出获取到的数据,最后关闭连接。
2. 使用 HttpClient 库
Apache 的 HttpComponents 是一个强大的开源库,提供了执行 HTTP 请求和相应的 API。下面是使用 HttpCilent 库读取网络资源的示例代码:
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class ReadNetworkResourceExample {
public static void main(String[] args) {
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("https://www.baidu.com");
CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
String result = EntityUtils.toString(httpEntity);
System.out.println(result);
httpResponse.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这个示例代码使用 HttpClient 创建一个新的 HTTP 客户端对象。其次创建了一个 HttpGet 对象并执行该请求。在获取 HTTP 实体之后,将其转换为 string 类型并最终关闭 httpResponse。
以上是 Java 读取外部资源的方法详解及实例代码的完整攻略,希望可以帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 读取外部资源的方法详解及实例代码 - Python技术站