牛骨文教育服务平台(让学习变的简单)
博文笔记

hadoop读取文件java.io.EOFException解决

创建时间:2013-11-28 投稿人: 浏览次数:1231

今天调试hadoop读取文件系统的时候遇到了一个java.io.EOFException异常

原始代码

String path="hdfs://master:9000/user/hadoop-0.20.2/tmp/7-0-initial-docid";
			FileSystem fs = FileSystem.get(URI.create(path), context.getConfiguration());
			FSDataInputStream in = null;
			in = fs.open(new Path(path));
			//InputStreamReader istr = new InputStreamReader(in);
			//BufferedReader br = new BufferedReader(istr);
			long id;
			while (id=in.readLong()>0L){
		            docID.add(id);
			}


后来将其中的while循环改为如下即可

                      while (in.available()>0){
				     id=in.readLong();
					 docID.add(id);
			}

因为读取的时候需要判断文件结尾

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。