我曾经使用过Buffered writer几次,但有一行代码我不确定它的用途。代码在
之下BufferedWriter writefile = null;
我想知道是否有人能告诉我这行代码的作用以及是否需要。
答案 0 :(得分:0)
BufferedReader
的初始化可能涉及调用可能抛出new BufferedReader(new FileReader(fileLocation))
之类的异常的构造函数,因为如果FileReader
中的位置不是FileNotFoundException
,则调用fileLocation
构造函数可能会抛出try
指向现有和可访问的文件。
要处理此异常,我们会在try{
BufferedReader br = new BufferedReader(new FileReader(fileLocation));
//...
}catch(FileNotFoundException e){
//handle exception
}
部分中移动初始化。从理论上讲,我们可以写
finally
但是在finally{
br.close();
}
部分,我们希望处理关闭该读取器并防止资源泄漏。所以我们需要添加
br
我们无法从finally
部分访问try
,因为它已在try
部分中声明,因此其范围仅限于此。
解决方案是在BufferedReader br;
try{
br = new BufferedReader(new FileReader(fileLocation));
//...
}catch(FileNotFoundException e){
//handle exception
}finally{
br.close();
}
之外声明它,但在try中初始化。所以我们来做吧
br.close()
我们无法调用br
,因为如果抛出异常null
将不会被初始化(甚至没有null),因此编译器无法编译此类代码。
解决方法是明确在br
部分之前将try
分配给finally
。这样,我们就可以在br
部分了解null
是否已正确初始化并需要关闭(如果它仍然保留BufferedReader br = null;
try{
br = new BufferedReader(new FileReader(fileLocation));
//...
}catch(FileNotFoundException e){
//handle exception
}finally{
if (br != null){
br.close();
}
}
)。所以我们习惯写代码如
try (BufferedReader br = new BufferedReader(new FileReader(fileLocation))) {
//...
}catch(FileNotFoundException e){
//handle exception
}
在引入 try-with-resources 之前,在 Java 7 之前使用了上面的内容。现在我们需要具有与上面相同的功能
//my db.js
const mongoose = require('mongoose'), db;
db = mongoose.createConnection = ("mongodb://localhost:27017/myApp",
{ "auth": { "authSource": "admin" }, "user": "admin1234", "pass": "abcd" });
require('./profiles');
//profiles.js
const mongoose = require('mongoose');
const logFile = new mongoose.Schema ({});
//etc etc
mongoose.model('Profile', profileSchema);
// routepages index.js
const express = require('express')';
const router = express.Router();
const ctrlProfiles('../controller/profiles');
router
//some routes
module.exports = router;
//controllers profiles.js
const mongoose = require('db'),
const Prof = mongoose.model('Profile');
const profileCreate = function (req,res) {};
module.exports = {
profileCreate
};