Save This Page
Home » hadoop-0.14.4 » org.apache » hadoop » fs » [javadoc | source]
    1   /**
    2    * Licensed to the Apache Software Foundation (ASF) under one
    3    * or more contributor license agreements.  See the NOTICE file
    4    * distributed with this work for additional information
    5    * regarding copyright ownership.  The ASF licenses this file
    6    * to you under the Apache License, Version 2.0 (the
    7    * "License"); you may not use this file except in compliance
    8    * with the License.  You may obtain a copy of the License at
    9    *
   10    *     http://www.apache.org/licenses/LICENSE-2.0
   11    *
   12    * Unless required by applicable law or agreed to in writing, software
   13    * distributed under the License is distributed on an "AS IS" BASIS,
   14    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   15    * See the License for the specific language governing permissions and
   16    * limitations under the License.
   17    */
   18   package org.apache.hadoop.fs;
   19   
   20   import java.io;
   21   
   22   /** Utility that wraps a {@link FSInputStream} in a {@link DataInputStream}
   23    * and buffers input through a {@link BufferedInputStream}. */
   24   public class FSDataInputStream extends DataInputStream
   25       implements Seekable, PositionedReadable {
   26   
   27     public FSDataInputStream(InputStream in)
   28       throws IOException {
   29       super(in);
   30       if( !(in instanceof Seekable) || !(in instanceof PositionedReadable) ) {
   31         throw new IllegalArgumentException(
   32             "In is not an instance of Seekable or PositionedReadable");
   33       }
   34     }
   35     
   36     public synchronized void seek(long desired) throws IOException {
   37       ((Seekable)in).seek(desired);
   38     }
   39   
   40     public long getPos() throws IOException {
   41       return ((Seekable)in).getPos();
   42     }
   43     
   44     public int read(long position, byte[] buffer, int offset, int length)
   45       throws IOException {
   46       return ((PositionedReadable)in).read(position, buffer, offset, length);
   47     }
   48     
   49     public void readFully(long position, byte[] buffer, int offset, int length)
   50       throws IOException {
   51       ((PositionedReadable)in).readFully(position, buffer, offset, length);
   52     }
   53     
   54     public void readFully(long position, byte[] buffer)
   55       throws IOException {
   56       ((PositionedReadable)in).readFully(position, buffer, 0, buffer.length);
   57     }
   58     
   59     public boolean seekToNewSource(long targetPos) throws IOException {
   60       return ((Seekable)in).seekToNewSource(targetPos); 
   61     }
   62   }

Save This Page
Home » hadoop-0.14.4 » org.apache » hadoop » fs » [javadoc | source]