这是代码:
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ReadFileContents {
public static void main(String[] args) throws IOException {
Scanner s = new Scanner(new File("rfg.txt"));
List<float[]> list = new ArrayList<float[]>();
while (s.hasNextLine()) {
String[] line = s.nextLine().split(" ");
list.add(new float[] { Float.parseFloat(line[0]),Float.parseFloat(line[1]),Float.parseFloat(line[2]) });
}
int numberOfRows = list.size();
int numberOfColumns = 3;
float[][] floatValues = new float[numberOfRows][numberOfColumns];
for (int i = 0; i < numberOfRows; i++) {
floatValues[i] = list.get(i);
System.out.println(floatValues[i][0] + " " + floatValues[i][1] + " " + floatValues[i][2]);
}
}
}
这里是.txt文件:
5.1 3.5 1.4 2.0
4.9 3.0 1.4 40.1
4.7 3.2 1.3 1.4
4.6 3.1 1.5 5.1
5.0 3.6 1.4 4.1
5.4 3.9 1.7 9.4
4.6 3.4 1.4 4.5
5.0 3.4 1.5 3.51
4.4 2.9 1.4 4.0
4.9 3.1 1.5 1.45
它只提供3列的o / p:
但是我想要打印文件中具有相同尺寸的文件(具有“n * m”维度的文件)。可以根据给定文件更改尺寸。
答案 0 :(得分:0)
如果我理解正确,您希望使用浮点值矩阵解析文件。您想通过读取文件并将其存储在float[][]
中来确定尺寸。在这里我相信你想要的:
File file = new File("rfg.txt");
List<float[]> list = new ArrayList<float[]>();
Scanner scanner = new Scanner(file).useDelimiter("\n");
while (scanner.hasNext()) {
String[] values = scanner.next().trim().split(" ");
float[] floats = new float[values.length];
for (int i = 0; i < values.length; i++) {
floats[i] = Float.parseFloat(values[i]);
}
list.add(floats);
}
float[][] values = new float[list.size()][];
for (int i = 0; i < list.size(); i++) {
values[i] = list.get(i);
for (int j = 0; j < values[i].length; j++) {
System.out.print(values[i][j] + " ");
}
System.out.println();
}
答案 1 :(得分:0)
您只从文本文件中读取3列。如果列数是动态的,那么您可以使用如下循环:
while (s.hasNextLine()) {
String[] line = s.nextLine().split(" ");
float[] f = new float[line.length];
for(int i = 0; i < line.length; i++){
float[i] = float.parseFloat(line[i]);
}
list.add(f);
numColumns = line.length;
}
这样,列数就成为文件中的列数。