如何创建新文件并将整数写入文件?我尝试使用在线帮助,但我仍然收到错误。
在课堂上,阵列对我来说一直是个糟糕的噩梦,如果能够清楚地了解如何在文件中编写内容,那就太好了。
提前致谢并抱歉完全无知编程。
答案 0 :(得分:0)
您的类构造函数接受String和int作为参数,但您要传递String和数组对象
WriteInts wi = new WriteInts("mydata.dat" , myArr); // this line
如果您不确定要传递多少个字,那么您应该将构造函数参数类型更改为varargs
public WriteInts(String ar, int a){
用
替换此行public WriteInts(String ar, int... a){
如果你想一次只传递一个int,那么在循环中逐个传递数组元素
WriteInts wi = new WriteInts("mydata.dat" , myArr[n]);
答案 1 :(得分:0)
其他一些观察结果:
if (!file.exists())
file.createNewFile();
file.canRead();
我不确定你在这里尝试做什么,如果它不存在则没有必要创建一个文件。如果不存在,将通过BufferedWriter
为您创建一个。如果目的是其他目的,例如,要附加到文件(如果存在),您可以使用其他方法。一个这样的例子是:
BufferedWriter outputWriter = new BufferedWriter(new FileWriter(file, true)); // second argument means append
使用FileWriter
选项进行追加。
如果您需要创建一个新文件夹来保存新文件,那么应该>>之前创建它。
此外,当outputWriter.flush();
跟随outputWriter.close();
时,close()
是不必要的。
答案 2 :(得分:0)
使用这个简单的实用程序。
将int写入文件的最简单方法
public class WriteInts {
private String fname;
public WriteInts(String fname) {
this.fname = fname;
}
public void write(int... a) throws IOException {
File file = new File(fname);
try {
System.out.println("WRiting to-" + file.getAbsolutePath());
if (!file.exists())
file.createNewFile();
file.canRead();
} catch (IOException x) {
x.printStackTrace();
}
BufferedWriter outputWriter = new BufferedWriter(new FileWriter(file));
for (int i = 0; i < a.length; i++) {
outputWriter.write(Integer.toString(a[i]));
/*
* Add new line to keep them seperated
*/
outputWriter.newLine();
}
/*
* Flush and close the stream
*/
outputWriter.flush();
outputWriter.close();
}
public static void main(String[] args) {
int myArr[] = { 16, 31, 90, 45, 89 };
try {
WriteInts wi = new WriteInts("mydata.dat");
wi.write(myArr);
} catch (IOException e) {
e.printStackTrace();
}
}
}