Java 读取文件,将字符串转换为双精度,存储在二维数组中
我需要读取文件中的数字列表并将其存储到2d数组中。 这就是我目前所拥有的。我将如何实现这一目标Java 读取文件,将字符串转换为双精度,存储在二维数组中,java,string,multidimensional-array,double,Java,String,Multidimensional Array,Double,我需要读取文件中的数字列表并将其存储到2d数组中。 这就是我目前所拥有的。我将如何实现这一目标 //this is only part of my code public class RainFall { double[][] precip; public RainFall() { precip = new double [5][12]; } public void readFile(BufferedReader infile) th
//this is only part of my code
public class RainFall
{
double[][] precip;
public RainFall()
{
precip = new double [5][12];
}
public void readFile(BufferedReader infile) throws IOException
{
FileInputStream infile = new FileInputStream("numbers.dat");
BufferedReader br = new BufferedReader(new InputStreamReader(infile));
String[][] myarray = new String[5][12];
while (infile.readLine() != null)
{
for (int j = 0; j < 5; j++)
{
for (int i = 0; i < 12; i++)
{
myarray[j][i] = infile.readLine();
}
}
}
infile.close();
}
//这只是我代码的一部分
公共级降雨
{
双[]精度;
公众雨量()
{
precip=新双[5][12];
}
public void readFile(BufferedReader infle)引发IOException
{
FileInputStream infle=新的FileInputStream(“numbers.dat”);
BufferedReader br=新的BufferedReader(新的InputStreamReader(infle));
字符串[][]myarray=新字符串[5][12];
while(infle.readLine()!=null)
{
对于(int j=0;j<5;j++)
{
对于(int i=0;i<12;i++)
{
myarray[j][i]=infle.readLine();
}
}
}
infle.close();
}
numbers.dat是60行:
1.010.03
2.14
0.47
//每一个数字都在一个新行上吗?非常接近,我在下面添加了几行。
公共级降雨
{
双[]精度;
公众雨量()
{
precip=新双[5][12];
}
public void readFile(BufferedReader infle)引发IOException
{
//FileInputStream infle=新的FileInputStream(“numbers.dat”);
BufferedReader br=新的BufferedReader(新文件读取器(“numbers.dat”);
字符串行=”;
字符串[][]myarray=新字符串[5][12];
而((line=br.readLine())!=null)
{
double num=double.parseDouble(line.trim());
对于(int j=0;j<5;j++)
{
对于(int i=0;i<12;i++)
{
precip[j][i]=num;
}
}
}
br.close();
}
//每一个数字都在一行上吗?你很接近了,我在下面加了几行。
公共级降雨
{
双[]精度;
公众雨量()
{
precip=新双[5][12];
}
public void readFile(BufferedReader infle)引发IOException
{
//FileInputStream infle=新的FileInputStream(“numbers.dat”);
BufferedReader br=新的BufferedReader(新文件读取器(“numbers.dat”);
字符串行=”;
字符串[][]myarray=新字符串[5][12];
而((line=br.readLine())!=null)
{
double num=double.parseDouble(line.trim());
对于(int j=0;j<5;j++)
{
对于(int i=0;i<12;i++)
{
precip[j][i]=num;
}
}
}
br.close();
}
而不是
String[][] myarray = new String[5][12];
使用
然后将其细分到循环中:
myarray[j][i] = Double.parseDouble(infile.readLine());
而不是
String[][] myarray = new String[5][12];
使用
然后将其细分到循环中:
myarray[j][i] = Double.parseDouble(infile.readLine());
发布一个你的文件看起来如何的示例每行上的数字是如何分开的?你能给出一些示例数据吗?每行上的数字数量是否相同?发布一个你的文件看起来如何的示例每行上的数字是如何分开的?你能给出一些示例数据吗?每行上的数字数量是否相同?我也删除了d您只需要使用FileInputStream、BufferedReader即可。这还可以填充二维双数组precip。如果要填充二维字符串数组myarray,则不需要double.parseDouble()调用。我还删除了您对FileInputStream的使用,BufferedReader是您所需要的。这还将填充2d双数组precip。如果您要填充2d字符串数组myarray,则不需要double.parseDouble()调用。