gpt4 book ai didi

java - Android:从文本文件中读取 double 并将它们放入数组中

转载 作者:行者123 更新时间:2023-12-01 05:42:12 25 4
gpt4 key购买 nike

我正在尝试从文本文件中读取值。文件的每行有 6 个 double 值。我创建了一个 getBufReader 方法

 public BufferedReader getBufReader(String filename, int rawName){
if(D) Log.i(TAG, "GETTING FILE");
BufferedReader bufReader = null;
// open the file for reading
InputStream instream = getResources().openRawResource(rawName);

// if file the available for reading
if (instream != null) {
// prepare the file for reading
InputStreamReader inputreader = new InputStreamReader(instream);
bufReader = new BufferedReader(inputreader);
}
// close the file again
try{instream.close();}
catch (Exception e) {
if(D) Log.e(TAG, "Unable to Close " + filename);}
return bufReader;
}

文件中的每一行都应该是我的二维数组中的一整行。我试图获取一行,将其标记化并将其放入数组中。但程序总是崩溃。 DDMS 日志并没有像我预期的那样产生一堆错误

    public void getData(){    
int rawName = R.raw.values_doubles;
BufferedReader reader_0 = getBufReader(strData2, rawName );
//2D array of x rows and y columns to store the data
//
double[][] Data_temp = new double[size_x][size_y];
String line = null;
StringTokenizer Strtoken;


for(i=0;i<size_x;i++){
try {line = reader_0.readLine();}catch (IOException e) {}
if(line != null){
Strtoken = new StringTokenizer(line);
for(j=0;j<size_y;j++){
if (Strtoken.hasMoreTokens()){
Data_temp[i][j] = Double.parseDouble(Strtoken.nextToken());
CommandsAdapter.add(""+Data_temp[i][j]+" ");
}}

} CommandsAdapter.add("\n");}}

请帮忙

此外,如果我不使用 try/catch 围绕 reader_0.readLine(),我会收到错误。

最佳答案

我将创建一个 FileInputStream 和一个缓冲读取器。我是从我的笔记本电脑上写的,所以我无法测试这段代码,但这应该给你一个总体思路(我的第一个应用程序将数据保存在文本文件中的单独行上,我可以使用此方法读取和写入它)注意这需要您知道文件中有多少行

FileInputStream fis = new FileInputStream(file);
BufferedReader reader = new BufferedReader(fis);

Double myArray[][] = new Double [Text_File_Lines][6];
StringBuffer buffer = new StringBuffer();

int x = 0;
int y = 0;
while (reader.readLine() != -1) { //indicating end of file
while (reader.nextChar != '\n' ) { //indicating new line
while (reader.nextChar != ' ' ) { //indicating no space character
buffer.append(reader.nextChar());
}
Double[y][x] = Double.parseDouble(buffer.toString()); //Parse double and add it to array
buffer = null; //restore buffer to null
x++;
}
y++;
}

请注意,这是非常草率的代码,几乎肯定无法工作这只是为了让您开始,我会在下类回家后发布我的工作代码。

关于java - Android:从文本文件中读取 double 并将它们放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com