java 输入流关闭顺序_JAVA的节点流和处理流以及流的关闭顺序
今天在编写hadoop程序的时候,用到了流的处理。关闭流的时候出现了问题:
代码:
1 FSDataInputStream fsin = fs.open(new Path(filein));
2 FSDataOutputStream fsout = fs.append(new Path(fileout));
3 BufferedReader br = new BufferedReader(new InputStreamReader(fsin));
4 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fsout));
5 ...
6 br.close();
7 fsin.close();
8 bw.close();
9 fsout.close();
异常:
1 [root@bigdata004 bigdata]# ./bigdataTimer.sh
2 INFO [main] com.sinosoft.bigdata.BigDataTimer.main(227) | -----Timer begin-----
3 INFO [main] com.sinosoft.bigdata.BigDataInit.(70) | bigdata init ...
4 WARN [main] org.apache.hadoop.util.NativeCodeLoader.(62) | Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
5 INFO [main] com.sinosoft.bigdata.BigDataTimer.mergeFile(66) | Finished appending file.
6 INFO [main] com.sinosoft.bigdata.BigDataTimer.mergeFile(68) | deleted the input data path.
7 INFO [main] com.sinosoft.bigdata.BigDataTimer.mergeFile(70) | create the input data path.
8 ERROR [main] org.apache.hadoop.hdfs.DFSClient.closeAllFilesBeingWritten(776) | Failed to close file /user/root/dayfileInput/dayfileIn
9 org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException): No lease on /user/root/dayfileInput/dayfileIn: File does not exist. Holder DFSClient_NONMAPREDUCE_-221972347_1 does not have any open files.
原因:关闭处理流br.close();之后,紧接着关闭了与之相关的fsin.close();的节点流。事实上,br.close();会调用fsin.close(); 因此重复关闭了2次fsin.close();最后抛出了异常。
回顾了一下流的知识:
按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。
java 输入流关闭顺序_JAVA的节点流和处理流以及流的关闭顺序相关推荐
- Java实现数星星_Java成长第四集--文本处理IO流
Java IO流在实际业务中使用的频率还是蛮高的,一些业务场景比如,文件的上传和导出,文件的读取等基本都是通过操作IO流来实现的,所以IO流是我们现在学习过程中必须要掌握的技能之一,熟练的使用IO流, ...
- java flowlayout 左对齐_Java Swing组件布局管理器之FlowLayout(流式布局)入门教程
本文实例讲述了Java Swing组件布局管理器之FlowLayout(流式布局).分享给大家供大家参考,具体如下: FlowLayout应该是Swing布局管理器学习中最简单.最基础的一个.所谓流式 ...
- 【Java网络编程与IO流】Java中IO流分为几种?字符流、字节流、缓冲流、输入流、输出流、节点流、处理流
Java网络编程与IO流目录: [Java网络编程与IO流]Java中IO流分为几种?字符流.字节流.缓冲流.输入流.输出流.节点流.处理流 [Java网络编程与IO流]计算机网络常见面试题高频核心考 ...
- java输出流输入流的使用_Java中的IO流之文件输入输出流
Java中的IO流之文件输入输出流 1.文件流介绍 文件流是以字节为单位进行读写文件的,所以属于字节流,并且是低级流.文件流位于java.io包下. 输入输出流分别是FileInputSteam和Fi ...
- java 常用流_Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数...
Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观 ...
- java输入流读取几行文本_Java基础笔记Day_16
IO流(字节流) IO流概述及其分类 ** InputStream(字节输入流)和Reader(字符输入流)通俗的理解都是读(read)的.** ** OutputStream(字节输出流)和Wr ...
- java中printreader类_Java基本字符流输入输出类的使用
1. 基本字符输入输出类结构 Java基本字符流类结构 2. 抽象父类:Writer & Reader Writer类 public abstract class Writer extends ...
- IO流1(字节流+字符流+输入流+输出流+节点流+处理流)
一(IO流简介) 大多数应用程序都需要实现与设备间的数据传输,如键盘输入数据.显示器显示程序运行的结果等.在Java中,将这种通过不同输入输出设备之间的数据传输抽象表述为"流",程 ...
- java io流填空题,java面试题选择题_java,Io流面试题和选择题
Java对象的序列化指将一个java对象写入OI流中,与此对应的是,对象的反序列化则从IO流中恢复该java对象.下面就由小编为大家介绍一下java Io流面试题和选择题的文章,欢迎阅读. java ...
最新文章
- new hashmap 初始大小_害怕面试被问HashMap?这一篇就搞定了
- 用window.open在同一个新窗口中访问指定url【IE页面缓存问题】
- php编程用空格,shell 编程中空格的使用方法
- eclipse总是自动跳到ThreadPoolExecutor解决办法
- 第4章 分治策略 monge阵列
- 30秒的PHP代码片段(1)数组 - Array
- 【SPOJ5971】LCMSUM
- AWS 聘用 Rust 编译器联合创始人,大企为何都爱 Rust?
- 手机日历怎么备注农历生日提醒
- java print快捷键_请问eclipse中输出的快捷键是什么?
- Qt中的forever是什么?
- latex里图片大小如何调整_如何使Latex中的图片放大依然清晰
- STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁
- FineReport的数据库
- php和java做众筹系统哪个好,Java版众筹系统和PHP众筹系统对比分析
- DataFountain-图书推荐系统
- linux 性能测试 antutu,安兔兔“不诚实”?这三款跑分软件绝对值得一试!
- Windows版WPS 2013上线发布
- 群晖服务器文件架误删除,群晖系统删除文件且清空共享文件夹回收站后空间没有释放解决记录...
- 转载:linux sed命令就是这么简单 - 薰衣草的旋律 - 博客园
热门文章
- 什么是计算机领域的实时系统
- Angular 内容投影 content projection 关于条件渲染问题的单步调试
- 如何在 ABAP Development Tool 创建新的 ABAP Cloud 项目
- 在阿里云 ECS 上使用 SAP Spartacus
- 使用 npm 命令查看某个 npm 开发包明细
- 使用 SASS Mixin 编写 clean code
- ABAP和Java的tag(marker) interface
- Angular应用带参数的路由实现
- 如何让Filddler抓包时忽略某些主机名
- 如何在backoffice里创建Hybris image container以及分配给product