source: proiecte/HadoopJUnit/hadoop-0.20.1/src/core/org/apache/hadoop/fs/FSDataInputStream.java @ 120

Last change on this file since 120 was 120, checked in by (none), 14 years ago

Added the mail files for the Hadoop JUNit Project

  • Property svn:executable set to *
File size: 2.2 KB
Line 
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 */
18package org.apache.hadoop.fs;
19
20import java.io.*;
21
22/** Utility that wraps a {@link FSInputStream} in a {@link DataInputStream}
23 * and buffers input through a {@link BufferedInputStream}. */
24public 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}
Note: See TracBrowser for help on using the repository browser.