好吧,我上课(对不起,格式化,对网站不太熟悉)

import java.io.*;  
public class writingArray  
{  
    public static void writeToFile(String fileName, String[] input) {  
        PrintWriter printWriter;  
        try {    
            printWriter = new PrintWriter(new FileOutputStream(fileName, true));
            int length = input.length;    
            int i;  
            for(i = 0; ++i < length; i++) {  
                printWriter.println(input[i]);  
            }   
            printWriter.close();    
        }  
        catch(IOException e) {  
            System.out.println(e.getMessage());  
        }  
    }  
}

问题是我想为文件写一个数组,每个条目都在单独的行上,我想在每次写入的开始时擦除文件。关于该怎么做的建议?因为我要做的就是在擦拭所有先前条目时写下数组的最后一个条目,但我可以在本身下几次编写最后一个条目。

谢谢^^

有帮助吗?

解决方案

for(i = 0; ++i < length; i++) {

我认为您不想增加我两次。摆脱++ i。

其他提示

我强烈建议使用图书馆 http://commons.apache.org/io/api-release/org/apache/commons/io/fileutils.html 这已经解决了许多此类问题。如果将数组转换为列表,则可以使用:

public static void writeLines(File file,
                              Collection<?> lines)
                       throws IOException

将收藏集中每个项目的toString()值写入指定的文件行。将使用默认的VM编码和默认行结尾。

图书馆的作者已经想到了许多问题,大多数人都没有,例如线路端,编码,错误捕获等。它也可能会尽可能高效。

for(i = 0; ++i < length; i++) { 看起来正确,应该是 for(i = 0; i < length; i++) { ?

或者,甚至更好: for (String line : input) { }

还, new FileOutputStream(fileName, true) 不会清除文件,而是附加文件。

import java.io.*;

public class writingArray {
    public static void writeToFile(String fileName, String[] input) {
        PrintWriter printWriter = null;
        try {
            printWriter = new PrintWriter(new FileOutputStream(fileName));
            for (int i = 0; i < input.length; i++) {
                printWriter.println(input[i]);
            }
        } catch (IOException e) {
            System.out.println(e.getMessage());
        } finally {
            if (printWriter != null) {
                printWriter.close();
            }
        }
    }

}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top