アセットフォルダ内にテキストファイルがあります。ディレクトリはmain/src/assets/socso.txtです。読み込むときに何が起こるのですか?エラーが発生します。私はテキストファイルに配置することを含む他の多くの質問を読んで、私はそれを正しく行ったと確信しています、そして、例のほとんどは、エラーが発生します。私がやろうとしているのは、スキャナを使ってテキストファイルからダブルデータ型を1語ずつ読み込むため、バッファ付きの読者を使用すべきではありません。私のコードの一部が使用されていた以下の通りです:アセットのテキストファイルから倍精度浮動小数点数を読み取る
InputStreamReader sc = new InputStreamReader(getAssets().open("socso.txt"));
Vector v = new Vector();
Iterator i = v.iterator();
String llimit;
while((llimit = sc.toString()) != null)
{
Socso s = new Socso();
s.setLowerlimit(Double.parseDouble(llimit));
s.setUpperlimit(Double.parseDouble(sc.toString()));
s.setEmployershares(Double.parseDouble(sc.toString()));
s.setEmployeeshares(Double.parseDouble(sc.toString()));
s.setType2(Double.parseDouble(sc.toString()));
v.add(s);
}
sc.close();
//when I run this, I can;t even run as error occur
を別のバージョン
//InputStream is = resources.getAssets().open("socso.txt"); (When I use this it appears as error too)
FileInputStream is = new FileInputStream(socso.txt); //(use this appear FileNotFoundException)
Scanner sc = new Scanner(is);
Vector v = new Vector();
Iterator i = v.iterator();
while(sc.hasNext())
{
Socso s = new Socso();
s.setLowerlimit(sc.nextDouble());
s.setUpperlimit(sc.nextDouble());
s.setEmployershares(sc.nextDouble());
s.setEmployeeshares(sc.nextDouble());
s.setType2(sc.nextDouble());
v.add(s);
}
私はまた別の質問からAssetManagerをしようとしたが、エラーがあると答えは、ちょうど私の質問に答えませんでしたコンテキスト構文で発生し、私もそれを実行することはできません。
フラグメントまたはアクティビティからこのコードを使用していますか? – EyadMhanna
"資産フォルダ内にテキストファイルがあります" - そして、 'AssetManager'で' open( "socso.txt") 'を使います。アセットはデバイス上ではなく、開発マシン上のファイルなので、 'FileInputStream'は動作しません。また、 'InputStreamReader'の' toString() 'はストリームから何も返さないため、' llimit = sc.toString() 'は無意味です。それ以外にも、テキストファイルよりも最新のデータファイル形式(JSON、XMLなど)を使用することをおすすめします。 – CommonsWare
Eyad Mhanna、実際はJavaクラス内のメソッドのコードの断片なので、それは動作ではないと思います。 –