1. 程式人生 > >hadoop讀取檔案java.io.EOFException解決

hadoop讀取檔案java.io.EOFException解決

今天除錯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);
			}

因為讀取的時候需要判斷檔案結尾