JavaアプリケーションのテキストファイルからArraylistに特定の値をコピーしたいと思います。Javaアプリケーションのテキストファイルからintまたはdouble値を解析する方法
package com.main;
import com.collection.Ingridient;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class FileReaderApp {
public static void main(String[] args) throws FileNotFoundException, IOException {
Ingridient i_one = new Ingridient();
ArrayList<Ingridient> db = new ArrayList<Ingridient>();
FileReader fin = new FileReader("/home/yati/Desktop/test");
Scanner src = new Scanner(fin);
// Read the ingridient from text file.
while (src.hasNext()) {
if (src.hasNext()) {
i_one.setName(src.next());
System.out.println("Name: " +src.next());
} else
if(src.hasNextDouble()) {
i_one.setUnit_price(src.nextDouble());
System.out.println("Unit Price: " +src.nextDouble());
}
else if (src.hasNextInt()) {
i_one.setUnit(src.nextInt());
System.out.println("Unit: " +src.nextInt());
} else {
System.out.println("File format error.");
return;
}
db.add(i_one);
}
fin.close();
}
}
:これは(test.textとしての私のデスクトップに保存されている)私のテキストファイル
String name = carrot;
double unit_price = 200;
int unit = 10;
私は次のように私のメインのアプリケーションに存在しているのArrayListに格納したい。この値であり、彼女の、Ingridientクラスのコードは次の通りです:
package com.collection;
public class Ingridient {
String name;
Double unit_price;
int unit;
public Ingridient() {
name = null;
unit_price = null;
unit = 0;
}
public void setName(String name) {
this.name = name;
}
public void setUnit_price(Double unit_price) {
this.unit_price = unit_price;
}
public void setUnit(int unit) {
this.unit = unit;
}
}
を私の問題は、私のアプリケーションがIngridientオブジェクトの名前のみを格納することができ、それが単位とUNIT_PRICEの任意の値を保存することができないということです。取得された出力は次のとおりです。 私はどこか誤解していますが、私はこの問題を解決できません。なにか提案を?
テキスト形式は固定ですか?テキストファイル内の文字列のいずれもdouble値として解析することはできません。 –
この文脈でファイルをフォーマットする正しい方法を教えてください。私は昨晩働いていたので、解決策を見つけることができません –