作業中のAndroidアプリのCSVファイルから値を取得するのに問題があります。CSVファイルの形式は次のとおりです。
Acton Town (District),Acton Town (Piccadilly),2.00
Aldgate (Circle),Aldgate (Metropolitan),4.00
Aldgate East (District),Aldgate East (Hammersmith And City),2.00
次のメソッドを使用して、Javaクラスにインポートしようとしています。
public ArrayList<Connection> importConnections(){
try
{
//gets the lines.txt file from assets
in = this.getAssets().open("connections.csv");
Scanner scan = new Scanner(in);
TextView lineData = (TextView)findViewById(R.id.displayLine);
String connection = null;
String startingStation = null;
String endingStation = null;
Float duration = 0;
do
{
connection = scan.nextLine();
String delimiter = ",\n";
StringTokenizer tokens = new StringTokenizer(connection, delimiter);
startingStation = tokens.nextToken();
endingStation = tokens.nextToken();
duration = Float.parseFloat(tokens.nextToken());
connections.add(startStation, endStation, duration);
}
while(scan.hasNext());
//for testing purposes
lineData.setText(endingStation);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return connections;
}
これを実行すると、アプリがクラッシュし、理由がわかりません。lineData.setText(endingStation)
として設定lineData.setText(connection)
すると、行全体が表示されます。例:
Acton Town (District),Acton Town (Piccadilly),2.00
コメントアウトすると
期間=Float.parseFloat(tokens.nextToken());
メソッドを実行します。誰かがこの方法で何か欠点を見つけることができますか?