嗨我想把一个数组写入一个文件,我可以做到这一点,除了我想在第一行写入数组的前50个对象然后移动到下一行并写下另外50个数字,然后是下一行,所以上。
目前我有这个:
if (pause.save) {
Formatter f;
FileWriter fw;
PrintWriter pw = null;
File f2 = new File("docs/save.txt");
FileReader r;
BufferedReader r1;
try{
//f = new Formatter("docs/save.txt");
f2.createNewFile();
fw = new FileWriter(f2);
pw = new PrintWriter(fw);
pw.println(mapwidth);
pw.println(mapheight);
for(int i = 0; i < overview.s.toArray().length; i ++){
pw.println(overview.s.get(i).getID());
}
}catch(IOException e){
e.printStackTrace();
System.out.println("ERROR!!!");
}finally{
pw.close();
}
}
我多年来一直试图这样做,但无法弄明白。
答案 0 :(得分:3)
您可以通过以下方式执行此操作: -
for(int i = 0; i < overview.s.toArray().length; i ++){
pw.println(overview.s.get(i).getID());
if(i!=0&&i%50==0)
//newline here
}
答案 1 :(得分:1)
只是做:
if (pause.save) {
Formatter f;
FileWriter fw;
PrintWriter pw = null;
File f2 = new File("docs/save.txt");
FileReader r;
BufferedReader r1;
try{
//f = new Formatter("docs/save.txt");
f2.createNewFile();
fw = new FileWriter(f2);
pw = new PrintWriter(fw);
pw.println(mapwidth);
pw.println(mapheight);
for(int i = 0; i < overview.s.toArray().length; i ++){
pw.print(overview.s.get(i).getID());
if ((i + 1) % 50 == 0) {
pw.println();
}
}
}catch(IOException e){
e.printStackTrace();
System.out.println("ERROR!!!");
}finally{
pw.close();
}
}