如何使用java将包含矩阵形式数据的txt文件读入与文件中相同维度的2d数组
这是我的密码:如何使用java将包含矩阵形式数据的txt文件读入与文件中相同维度的2d数组,java,Java,这是我的密码: import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.StringTokenizer; public class csvimport5 { public static void main(String[] args) throws IOException {
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class csvimport5 {
public static void main(String[] args) throws IOException {
double [][] data = new double [87][2];
File file = new File("buydata.txt");
int row = 0;
int col = 0;
BufferedReader bufRdr = new BufferedReader(new FileReader(file));
String line = null;
//read each line of text file
while((line = bufRdr.readLine()) != null && row < data.length)
{
StringTokenizer st = new StringTokenizer(line,",");
while (st.hasMoreTokens())
{
//get next token and store it in the array
data[row][col] = Double.parseDouble(st.nextToken());
col++;
}
col = 0;
row++;
}
System.out.println(" "+data[87][2]);
}
}
导入java.io.BufferedReader;
导入java.io.File;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.StringTokenizer;
公共类csvimport5{
公共静态void main(字符串[]args)引发IOException{
双精度[]数据=新双精度[87][2];
File File=新文件(“buydata.txt”);
int行=0;
int col=0;
BufferedReader bufRdr=新的BufferedReader(新文件读取器(文件));
字符串行=null;
//读取文本文件的每一行
while((line=bufRdr.readLine())!=null&&row
它显示错误:-numberformatException:空字符串
请帮助我在您的文件中的某个时刻,st.nextToken()返回一个空字符串。因为您试图将其解析为一个Double,所以您得到了一个错误(空字符串中没有可以从中获取Double的数字) 最常见的原因是输入数据不正确。您是否能够提供buydata.txt文件的子集,从而导致出现错误?正如所建议的,错误的原因是输入文件中的某些格式错误的字符串,导致
parseDouble()
抛出NumberFormatException
。您应该将其排序为尝试。。。捕捉
。你可以这样做:
// set val to a constant value that you know is not acceptable
dobule val = UNACCEPTABLE_VALUE;
String token = st.nextToken();
try {
val = Double.parseDouble(st.nextToken());
} catch (NumberFormatException e) {
System.err.println("bad value: " + token + " at line: " + line);
}
data[row][col] = val;
col++