bufferedreader和bufferedwriter的java提取方法

bufferedreader和bufferedwriter的java提取方法,java,extract,bufferedreader,bufferedwriter,Java,Extract,Bufferedreader,Bufferedwriter,我必须改变方法。一个读取文件,另一个写入文件。如果要查看它们,它们仅在局部变量上有所不同: public method1 wtite() { try { BufferedWriter out = new BufferedWriter(new FileWriter(file, true)); } catch (here come catch cases equal in two methods) } public method1 read() { try { Buff

我必须改变方法。一个读取文件,另一个写入文件。如果要查看它们,它们仅在局部变量上有所不同:

public method1 wtite() {
  try {
    BufferedWriter out = new BufferedWriter(new FileWriter(file, true));
  } catch (here come catch cases equal in two methods)
}

public method1 read() {
  try {
    BufferedReader in = new BufferedReader(new FileReader(file));
  } catch (here come catch cases equal in two methods)
}
我想从两者中提取一个方法。根据传入对象是什么:打开或关闭文件。Smth是这样的:

public fileIO(??? io) {
  try{
    //read or write
  } catch//put the same code here
}

是否可以使用相同的方法将编写器和读取器结合起来?

将常见部分提取为方法:

void handle(...) {
    // handle exception
}

public void read(...) {
    try {
    ...
    } catch (...) {
        handle(...); // use defined method
    }
}
public void write(...) {
    try {
    ...
    } catch (...) {
        handle(...); // and here
    }
}

不,没有办法统一阅读和写作。但是你可能想声明抛出IOException的方法,而不是捕获它。我认为这不是一个好主意,也不值得每行5行。但是,如果在创建BufferedReader/Writer之前或之后有一段大型通用代码,则可以将这些代码段分解为函数,并调用before/after函数?请