importjava.io.FileInputStream;importjava.io.IOException;publicclassMain{publicstaticvoidmain(String[]args){// 使用 try-with-resources 确保资源被自动关闭try(FileInputStreaminputStream=newFileInputStream("example.txt")){// 这里将执行数据读取操作}catch(IOExceptione){e.printStackTrace();// 捕获并处理...
classMyResourceimplementsAutoCloseable{// ...@Overridepublicvoidclose()throwsException{System.out.println("关闭资源");}}publicclassMain{publicstaticvoidmain(String[]args){try(MyResourceresource=newMyResource()){resource.open();// 执行一些操作}catch(Exceptione){e.printStackTrace();}}} 1. 2. 3....
try(Resourceres=...) {// work with res} 通过上述方法编写try块,当try块正常退出或出现异常时,都会自动调用close方法,不需要使用嵌套。 否则若try块和close方法均发生异常,后者就会被自动捕获,由addSuppressed方法添加到前者中。需要调用getSuppressed方法得到从close方法抛出的被抑制的异常列表才能对这些异常进行观察...
JDK7新增的try-with-resource可以改善这一写法 privateStringgetBodyString(finalServletRequestrequest)throwsIOException{varsb=newStringBuilder();try(varinputStream=request.getInputStream();varreader=newBufferedReader(newInputStreamReader(inputStream,StandardCharsets.UTF_8));){varline="";while((line=reader.r...
【Java8】try-with-resourcesAutoClosable
String filePath =this.getClass().getResource("test.txt").getPath(); try(FileReader fr =newFileReader(filePath); BufferedReader br =newBufferedReader(fr)) { System.out.println(br.readLine()); } } 可以看到,如上测试用例中,将FileReader与BufferedReader的声明与创建,放在了try括号内,这样即可以无...
JDK 1.8 Eclipse 4.10 方法/步骤 1 创建一个类,并声明一个成员方法,通过传统的 try catch finally 方式读取本地文件,主要步骤如下: 1. 在 try 语句块中创建 IO 流对象;2. 从 IO 流中读取数据,并进行相关业务处理;3. catch 语句块中捕获并处理相关异常;4. finally 块中关闭 IO 流,因为关闭...
String filePath = this.getClass().getResource("test.txt").getPath(); try (FileReader fr = new FileReader(filePath); BufferedReader br = new BufferedReader(fr)) { System.out.println(br.readLine()); } } 可以看到,如上测试用例中,将FileReader与BufferedReader的声明与创建,放在了try括号内,这样...
at basic.exception.TryWithResource.test(TryWithResource.java:82) at basic.exception.TryWithResource.main(TryWithResource.java:7) ... 好的,问题来了,由于我们一次只能抛出一个异常,所以在最上层看到的是最后一个抛出的异常——也就是close方法抛出的MyException,而sendData抛出的Exception被忽略了。这就是所谓...
2. Usingtry-with-resources Simply put, to be auto-closed, a resource has to be both declared and initialized inside thetry: try(PrintWriterwriter=newPrintWriter(newFile("test.txt"))) { writer.println("Hello World"); } 3. Replacingtry–catch-finallyWithtry-with-resources ...