我正在尝试编写一个家庭作业程序,打开一个由字符串给出的文件,并将一系列逗号分隔的整数值读入一个数组,然后返回。
import java.util.Arrays;
...
int[] readVector(String filename) throws IOException {
File f = new File(filename);
FileOutputStream fos = new FileOutputStream(f, true);
PrintWriter pw = new PrintWriter(fos);
pw.println("");
pw.close();
FileReader fr = new FileReader(f);
BufferedReader bfr = new BufferedReader(fr);
while (true) {
String s = bfr.readLine();
if (s == null) {
break;
}
System.out.println(s);
}
bfr.close();;
return NOIDEA;
}
考虑一下......
Matrix m = new Matrix();
System.out.println(Arrays.toString(m.readVector("vector.txt"))); // print "[1, 2, 3, 4]"
答案 0 :(得分:0)
将文件内容读入数组,然后使用以下命令进行转换:
var data = ["cat", "dog", "bird"];
var doThing = function (val) {
return val + ", go away!"
}
function alterData (data) {
return data.map(doThing);
}
alterData(data);
如果您在还中将文本文件读入数组时遇到问题,请查看this question。
答案 1 :(得分:0)
根据您的描述,
你的实现包含很多它不需要的东西,
例如FileOutputStream
和PrintWriter
。
如果值在一行上,
那么它足以处理一条线,
这对Scanner
很容易。
这应该这样做:
int[] readVector(String filename) throws IOException {
return Arrays.stream(new Scanner(new File(filename)).nextLine().split(","))
.mapToInt(Integer::parseInt).toArray();
}