java在不下载的情况下读取远程csv文件
我需要逐行读取远程大csv文件(基本上是流媒体)。每次读取后,我都想将记录保存在数据库中。目前我正在通过下面的代码实现它,但我不确定它是否下载了完整的文件并将其保存在jvm内存中。我想不是。我能用一些Java8流特性更好地编写这段代码吗
URL url = new URL(baseurl);
HttpURLConnection urlConnection = url.openConnection();
if(connection.getResponseCode() == 200)
{
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String current;
while((current = in.readLine()) != null)
{
persist(current);
}
}
# 1 楼答案
首先,当读取完成时,应该使用try-with-resources statement自动关闭流} ,它返回一个
接下来
BufferedReader
有一个方法^{Stream<String>
那么你的代码应该是这样的:
现在由您决定代码是否更好,您的假设是正确的,即不将整个文件保存在JVM中