Java基础易错点:语句运行一次和运行两次的判断

Java基础易错点:语句运行一次和运行两次的判断
今天在数据存储成文件的时候发现的一个错误:(我没看出来)
代码如下:
public void readerObjectFile() { File file = new File("d:/employee"); // 判断文件是否存在 if (file.canExecute()) { } // 将文件读取到系统中 ObjectInputStream isObject = null; try { InputStream is = new FileInputStream(file); isObject = new ObjectInputStream(is); // 读的过程 while (isObject.readObject() != null) { employees.add((Employees) isObject.readObject()); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { try { isObject.close(); } catch (IOException e) { e.printStackTrace(); } } }
其中是错误的源代码,我错的地方是在读的过程中,isObjec.readObject() != null 这里,这里在while 循环中运行了一次isObject.r=readerObject() 在循环里面也运行了一次,导致的错误就是判断的第一个元素,存进去的第二个元素,这就是运行了两次。
文章原文地址:刘广法,转载保留出处,感谢