写任何文件时的重点

时间:2013-11-16 10:05:20

标签: java file filewriter

我正在编写一个对应用程序非常重要的文件(客户端和供应商特定)。我想知道在写文件时我应该考虑什么。请参阅下面的演示文件编写过程

public class EDIWriter {
    public final static String END_OF_ATTRIBUTE = "|";
    File file;
    BufferedWriter writer;
    public void writer(){
    try{
    file = new File("C://edifile.edi");
    writer = new BufferedWriter(new FileWriter(file));

    StringBuilder editext = new StringBuilder();
    editext.append("ISA");
    editext.append(END_OF_ATTRIBUTE);
    editext.append("00");
    editext.append(END_OF_ATTRIBUTE);

    writer.write(editext.toString());
    writer.flush();
    writer.close();
        }catch(IOException e){

            e.printStackTrace();

        }catch(Exception e){

            e.printStackTrace();
        }
    }

    public static void main(String arg[]){
        new EDIWriter().writer();
    }
}

5 个答案:

答案 0 :(得分:1)

一点是确保关闭文件,即使发生了异常。所以我建议添加一个finally块:

finally {
 try {
    if (writer != null) {
      writer.close();
    }
 } catch (IOException ioexception) {
    //log exception
 }

我记得的另一点:由于你的方法是公开的,它可以被调用两次(来自不同的调用者)。同步可能有助于解决此问题。

答案 1 :(得分:1)

是的,在处理文件操作时,必须关闭资源(全部打开以进行解析/写入)。否则,最终会出现内存不足问题。

答案 2 :(得分:0)

也许您应该在编辑之前备份原始文件,然后在编辑后检查文件的正确性,如果文件已损坏,请从备份文件中恢复。

只是一个建议。

答案 3 :(得分:0)

最重要的一点是:我的程序是否正常运行?它通过我的测试并满足我的所有要求吗?如果没有,那么当您遇到要解决的特定问题时,请到此处。如果是这样,那么继续下一个任务。

答案 4 :(得分:-2)

首先,文件必须存在。     如果(!file.exists()){         file.createNewFile();     }