什么是最好的使用方式,例如FileOutputStream 而不会弄乱我的代码。

例如以下代码:

我需要做的是:

FileOutputStream fOut = new FileOutputStream(file);
while(!Thread.currentThread().isInterrupted()){
   fOut.write(data);
   //other code
}

但是如果我添加异常处理就全乱了。例如,我认为类似以下内容:
private FileOutputStream openStream(String file){
   try{
      return new FileOutputStream(file);
   }
   catch(FileNotFoundException e){
      return null;
   }
 }

但随后它使逻辑变得奇怪。我的意思是当我关闭流时,例如在另一种方法等。
有什么方法可以获得更清晰的代码

最佳答案

像这样的包装器怎么样:

public class StreamWrapper {

    private FileOutputStream fileOutputStream;

    public FileOutputStream open(String file) {
        try {
            fileOutputStream = new FileOutputStream(file);
        } catch (FileNotFoundException e) {
            // Define action
        }
        return fileOutputStream;
    }

    public void close() {
        try {
            fileOutputStream.close();
        } catch (IOException e) {
            // Define action
        }
    }

}

并像这样使用它:
StreamWrapper wrapper = new StreamWrapper();
FileOutputStream fOut = wrapper.open("file");
// something
wrapper.close();

关于java - 文件 I/O 无异常处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14952566/

10-11 09:21