我想从先前指定的文件夹中读取保存在.txt文件中的double类型的数据。我已经实现了以下代码来读取数据,然后将它们放入一个名为savg1的double类型的数组中。当我运行我的应用程序时,它将崩溃并且应用程序停止。我试图逐步调试应用程序,发现当代码到达savg1 [i] = Double.parseDouble(str)时会发生崩溃。
public void filereader()
{
InputStream is=this.getResources().openRawResource(R.raw.nums);
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String str=null;
int i=0;
try
{
if (is !=null)
{
str=br.readLine();
while (str != null) {
savg1[i] = Double.parseDouble(str);
i++;
str=br.readLine();
}
is.close();
br.close();
}
} catch (IOException e)
{
e.printStackTrace();
}
}
我是Android开发新手,请原谅我的基本问题。任何人都可以指导我如何解决这个问题吗?
答案 0 :(得分:1)
使用以下代码从您的文件中读取数据。请注意,在此方法中,每个数字应位于单独的行中:
double svg1[] = new double[10];
try {
InputStream is = getResources().openRawResource(R.raw.data);
DataInputStream dis = new DataInputStream(is);
while (dis.available() > 0) {
String test = dis.readLine();
double a = Double.parseDouble(test);
}
}catch (Exception e){
e.printStackTrace();
}
答案 1 :(得分:0)
您可以使用文件扫描程序读取保存在文本文件中的双重类型数据,如下所示:
public void fileReader(){
Scanner scan;
File file = new File("resources\\scannertester\\data.txt");
int idx = 0;
try {
scan = new Scanner(file);
while(scan.hasNextDouble())
savg1[idx++] = scan.nextDouble();
} catch (FileNotFoundException error) {
error.printStackTrace();
}
scan.close();
}