【发布时间】:2012-12-11 15:32:28
【问题描述】:
我想从airport file 的每一行中读取每个机场和相应的机场代码,然后用 [,] 分割该行,这样我就可以将所需的信息放入数据库中。
我怎样才能做到这一点?
【问题讨论】:
-
我将 URL 下载到了一个 TXT 文件,然后我将整个文件作为字符串读入并尝试将其拆分。但我认为内容太大了。
我想从airport file 的每一行中读取每个机场和相应的机场代码,然后用 [,] 分割该行,这样我就可以将所需的信息放入数据库中。
我怎样才能做到这一点?
【问题讨论】:
LineNumberReader lnr = new LineNumberReader( new InputStreamReader(new URL( "http://..." ).openStream()) );
String readLine = lnr.readLine();
do {
String[] split = readLine.split(",");
for( String col : split )
{
// Write to DB
System.out.println(col);
}
readLine = lnr.readLine();
} while (readLine!=null)
您可能想要使用 CSV 阅读库,例如 OpenCSV
【讨论】:
您可以使用Apache Commons CSV 来读取文件。看看这个帖子CSV parsing in Java - working example..?。
【讨论】:
我在 ideone 中编写了一个小示例,向您展示如何从给定流中逐行读取,然后用逗号分隔行:
代码如下:
import java.util.*;
import java.lang.*;
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
String temp;
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()) {
temp = sc.nextLine();
String[] strs = temp.split(",");
for (int i = 0; i < strs.length; ++i) {
System.out.println(strs[i]);
}
System.out.println("===========================================");
}
}
}
我不是故意解决整个问题,所以也有一些想法留给你。此外,我特意让示例尽可能简单,以便更容易理解。
您可以在 ideone here 中查看示例。
【讨论】: