Java Code Examples for java.io.RandomAccessFile#getFD()

The following examples show how to use java.io.RandomAccessFile#getFD() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: FadvisedFileRegion.java    From big-c with Apache License 2.0 6 votes vote down vote up
public FadvisedFileRegion(RandomAccessFile file, long position, long count,
    boolean manageOsCache, int readaheadLength, ReadaheadPool readaheadPool,
    String identifier, int shuffleBufferSize, 
    boolean shuffleTransferToAllowed) throws IOException {
  super(file.getChannel(), position, count);
  this.manageOsCache = manageOsCache;
  this.readaheadLength = readaheadLength;
  this.readaheadPool = readaheadPool;
  this.fd = file.getFD();
  this.identifier = identifier;
  this.fileChannel = file.getChannel();
  this.count = count;
  this.position = position;
  this.shuffleBufferSize = shuffleBufferSize;
  this.shuffleTransferToAllowed = shuffleTransferToAllowed;
}
 
Example 2
Source File: FadvisedFileRegion.java    From tajo with Apache License 2.0 6 votes vote down vote up
public FadvisedFileRegion(RandomAccessFile file, long position, long count,
                          boolean manageOsCache, int readaheadLength, ReadaheadPool readaheadPool,
                          String identifier, int shuffleBufferSize,
                          boolean shuffleTransferToAllowed) throws IOException {
  super(file.getChannel(), position, count);
  this.manageOsCache = manageOsCache;
  this.readaheadLength = readaheadLength;
  this.readaheadPool = readaheadPool;
  this.fd = file.getFD();
  this.identifier = identifier;
  this.fileChannel = file.getChannel();
  this.count = count;
  this.position = position;
  this.shuffleBufferSize = shuffleBufferSize;
  this.shuffleTransferToAllowed = shuffleTransferToAllowed;
}
 
Example 3
Source File: MultistreamXMLDumpParser.java    From dkpro-jwktl with Apache License 2.0 6 votes vote down vote up
private InputStream getInputStreamAtOffset(final RandomAccessFile file, long offset) throws IOException {
	if (offset + 2 >= file.length()) {
		throw new IOException("read past EOF");
	}
	file.seek(offset + 2); // skip past 'BZ' header
	InputStream is = new CBZip2InputStream(new FileInputStream(file.getFD()) {
		@Override
		public void close() throws IOException {
		}
	});
	if (offset == 0) {
		return new SequenceInputStream(is, new ByteArrayInputStream(MEDIAWIKI_CLOSING.getBytes()));
	} else {
		return new SequenceInputStream(
				new ByteArrayInputStream(MEDIAWIKI_OPENING.getBytes()),
				new SequenceInputStream(is,
						new ByteArrayInputStream(MEDIAWIKI_CLOSING.getBytes())));
	}
}
 
Example 4
Source File: NativeIO.java    From big-c with Apache License 2.0 6 votes vote down vote up
/**
 * Create a FileInputStream that shares delete permission on the
 * file opened at a given offset, i.e. other process can delete
 * the file the FileInputStream is reading. Only Windows implementation
 * uses the native interface.
 */
public static FileInputStream getShareDeleteFileInputStream(File f, long seekOffset)
    throws IOException {
  if (!Shell.WINDOWS) {
    RandomAccessFile rf = new RandomAccessFile(f, "r");
    if (seekOffset > 0) {
      rf.seek(seekOffset);
    }
    return new FileInputStream(rf.getFD());
  } else {
    // Use Windows native interface to create a FileInputStream that
    // shares delete permission on the file opened, and set it to the
    // given offset.
    //
    FileDescriptor fd = NativeIO.Windows.createFile(
        f.getAbsolutePath(),
        NativeIO.Windows.GENERIC_READ,
        NativeIO.Windows.FILE_SHARE_READ |
            NativeIO.Windows.FILE_SHARE_WRITE |
            NativeIO.Windows.FILE_SHARE_DELETE,
        NativeIO.Windows.OPEN_EXISTING);
    if (seekOffset > 0)
      NativeIO.Windows.setFilePointer(fd, seekOffset, NativeIO.Windows.FILE_BEGIN);
    return new FileInputStream(fd);
  }
}
 
Example 5
Source File: FileDistributionCalculator.java    From big-c with Apache License 2.0 6 votes vote down vote up
void visit(RandomAccessFile file) throws IOException {
  if (!FSImageUtil.checkFileFormat(file)) {
    throw new IOException("Unrecognized FSImage");
  }

  FileSummary summary = FSImageUtil.loadSummary(file);
  try (FileInputStream in = new FileInputStream(file.getFD())) {
    for (FileSummary.Section s : summary.getSectionsList()) {
      if (SectionName.fromString(s.getName()) != SectionName.INODE) {
        continue;
      }

      in.getChannel().position(s.getOffset());
      InputStream is = FSImageUtil.wrapInputStreamForCompression(conf,
          summary.getCodec(), new BufferedInputStream(new LimitInputStream(
              in, s.getLength())));
      run(is);
      output();
    }
  }
}
 
Example 6
Source File: FileDistributionCalculator.java    From hadoop with Apache License 2.0 6 votes vote down vote up
void visit(RandomAccessFile file) throws IOException {
  if (!FSImageUtil.checkFileFormat(file)) {
    throw new IOException("Unrecognized FSImage");
  }

  FileSummary summary = FSImageUtil.loadSummary(file);
  try (FileInputStream in = new FileInputStream(file.getFD())) {
    for (FileSummary.Section s : summary.getSectionsList()) {
      if (SectionName.fromString(s.getName()) != SectionName.INODE) {
        continue;
      }

      in.getChannel().position(s.getOffset());
      InputStream is = FSImageUtil.wrapInputStreamForCompression(conf,
          summary.getCodec(), new BufferedInputStream(new LimitInputStream(
              in, s.getLength())));
      run(is);
      output();
    }
  }
}
 
Example 7
Source File: FadvisedFileRegion.java    From tajo with Apache License 2.0 6 votes vote down vote up
public FadvisedFileRegion(RandomAccessFile file, long position, long count,
                          boolean manageOsCache, int readaheadLength, ReadaheadPool readaheadPool,
                          String identifier, int shuffleBufferSize,
                          boolean shuffleTransferToAllowed) throws IOException {
  super(file.getChannel(), position, count);
  this.manageOsCache = manageOsCache;
  this.readaheadLength = readaheadLength;
  this.readaheadPool = readaheadPool;
  this.fd = file.getFD();
  this.identifier = identifier;
  this.fileChannel = file.getChannel();
  this.count = count;
  this.position = position;
  this.shuffleBufferSize = shuffleBufferSize;
  this.shuffleTransferToAllowed = shuffleTransferToAllowed;
}
 
Example 8
Source File: FadvisedFileRegion.java    From hadoop with Apache License 2.0 6 votes vote down vote up
public FadvisedFileRegion(RandomAccessFile file, long position, long count,
    boolean manageOsCache, int readaheadLength, ReadaheadPool readaheadPool,
    String identifier, int shuffleBufferSize, 
    boolean shuffleTransferToAllowed) throws IOException {
  super(file.getChannel(), position, count);
  this.manageOsCache = manageOsCache;
  this.readaheadLength = readaheadLength;
  this.readaheadPool = readaheadPool;
  this.fd = file.getFD();
  this.identifier = identifier;
  this.fileChannel = file.getChannel();
  this.count = count;
  this.position = position;
  this.shuffleBufferSize = shuffleBufferSize;
  this.shuffleTransferToAllowed = shuffleTransferToAllowed;
}
 
Example 9
Source File: FadvisedChunkedFile.java    From tez with Apache License 2.0 5 votes vote down vote up
public FadvisedChunkedFile(RandomAccessFile file, long position, long count,
                           int chunkSize, boolean manageOsCache, int readaheadLength,
                           ReadaheadPool readaheadPool, String identifier) throws IOException {
  super(file, position, count, chunkSize);
  this.manageOsCache = manageOsCache;
  this.readaheadLength = readaheadLength;
  this.readaheadPool = readaheadPool;
  this.fd = file.getFD();
  this.identifier = identifier;
}
 
Example 10
Source File: DataGen.java    From rubix with Apache License 2.0 5 votes vote down vote up
public static byte[] readBytesFromFile(String path, int offset, int length) throws IOException
{
  RandomAccessFile raf = new RandomAccessFile(path, "r");
  FileInputStream fis = new FileInputStream(raf.getFD());
  DirectBufferPool bufferPool = new DirectBufferPool();
  ByteBuffer directBuffer = bufferPool.getBuffer(2000);
  byte[] result = new byte[length];
  FileChannel fileChannel = fis.getChannel();

  int nread = 0;
  int leftToRead = length;

  while (nread < length) {
    int readInThisCycle = Math.min(leftToRead, directBuffer.capacity());
    directBuffer.clear();
    int nbytes = fileChannel.read(directBuffer, offset + nread);
    if (nbytes <= 0) {
      break;
    }

    directBuffer.flip();
    int transferBytes = Math.min(readInThisCycle, nbytes);
    directBuffer.get(result, nread, transferBytes);
    leftToRead -= transferBytes;
    nread += transferBytes;
  }

  return result;
}
 
Example 11
Source File: FadvisedChunkedFile.java    From tajo with Apache License 2.0 5 votes vote down vote up
public FadvisedChunkedFile(RandomAccessFile file, long position, long count,
                           int chunkSize, boolean manageOsCache, int readaheadLength,
                           ReadaheadPool readaheadPool, String identifier) throws IOException {
  super(file, position, count, chunkSize);
  this.manageOsCache = manageOsCache;
  this.readaheadLength = readaheadLength;
  this.readaheadPool = readaheadPool;
  this.fd = file.getFD();
  this.identifier = identifier;
}
 
Example 12
Source File: FSEditLog.java    From hadoop-gpu with Apache License 2.0 5 votes vote down vote up
EditLogFileOutputStream(File name) throws IOException {
  super();
  file = name;
  bufCurrent = new DataOutputBuffer(sizeFlushBuffer);
  bufReady = new DataOutputBuffer(sizeFlushBuffer);
  RandomAccessFile rp = new RandomAccessFile(name, "rw");
  fp = new FileOutputStream(rp.getFD()); // open for append
  fc = rp.getChannel();
  fc.position(fc.size());
}
 
Example 13
Source File: FSDataset.java    From RDFS with Apache License 2.0 5 votes vote down vote up
public InputStream getBlockInputStream(int namespaceId, Block b, long seekOffset) throws IOException {
  File blockFile = getBlockFile(namespaceId, b);
  RandomAccessFile blockInFile = new RandomAccessFile(blockFile, "r");
  if (seekOffset > 0) {
    blockInFile.seek(seekOffset);
  }
  return new FileInputStream(blockInFile.getFD());
}
 
Example 14
Source File: FSDataset.java    From RDFS with Apache License 2.0 5 votes vote down vote up
/**
 * Returns handles to the block file and its metadata file
 */
public BlockInputStreams getTmpInputStreams(int namespaceId, Block b, 
                        long blkOffset, long ckoff) throws IOException {
  lock.readLock().lock();
  try {
    DatanodeBlockInfo info = volumeMap.get(namespaceId, b);
    if (info == null) {
      throw new IOException("Block " + b + " does not exist in volumeMap.");
    }
    FSVolume v = info.getVolume();
    File blockFile = info.getFile();
    if (blockFile == null) {
      blockFile = v.getTmpFile(namespaceId, b);
    }
    RandomAccessFile blockInFile = new RandomAccessFile(blockFile, "r");
    if (blkOffset > 0) {
      blockInFile.seek(blkOffset);
    }
    File metaFile = getMetaFile(blockFile, b);
    RandomAccessFile metaInFile = new RandomAccessFile(metaFile, "r");
    if (ckoff > 0) {
      metaInFile.seek(ckoff);
    }
    return new BlockInputStreams(new FileInputStream(blockInFile.getFD()),
        new FileInputStream(metaInFile.getFD()));
  } finally {
    lock.readLock().unlock();
  }
}
 
Example 15
Source File: PBImageXmlWriter.java    From hadoop with Apache License 2.0 4 votes vote down vote up
public void visit(RandomAccessFile file) throws IOException {
  if (!FSImageUtil.checkFileFormat(file)) {
    throw new IOException("Unrecognized FSImage");
  }

  FileSummary summary = FSImageUtil.loadSummary(file);
  try (FileInputStream fin = new FileInputStream(file.getFD())) {
    out.print("<?xml version=\"1.0\"?>\n<fsimage>");

    ArrayList<FileSummary.Section> sections = Lists.newArrayList(summary
        .getSectionsList());
    Collections.sort(sections, new Comparator<FileSummary.Section>() {
      @Override
      public int compare(FileSummary.Section s1, FileSummary.Section s2) {
        SectionName n1 = SectionName.fromString(s1.getName());
        SectionName n2 = SectionName.fromString(s2.getName());
        if (n1 == null) {
          return n2 == null ? 0 : -1;
        } else if (n2 == null) {
          return -1;
        } else {
          return n1.ordinal() - n2.ordinal();
        }
      }
    });

    for (FileSummary.Section s : sections) {
      fin.getChannel().position(s.getOffset());
      InputStream is = FSImageUtil.wrapInputStreamForCompression(conf,
          summary.getCodec(), new BufferedInputStream(new LimitInputStream(
              fin, s.getLength())));

      switch (SectionName.fromString(s.getName())) {
      case NS_INFO:
        dumpNameSection(is);
        break;
      case STRING_TABLE:
        loadStringTable(is);
        break;
      case INODE:
        dumpINodeSection(is);
        break;
      case INODE_REFERENCE:
        dumpINodeReferenceSection(is);
        break;
      case INODE_DIR:
        dumpINodeDirectorySection(is);
        break;
      case FILES_UNDERCONSTRUCTION:
        dumpFileUnderConstructionSection(is);
        break;
      case SNAPSHOT:
        dumpSnapshotSection(is);
        break;
      case SNAPSHOT_DIFF:
        dumpSnapshotDiffSection(is);
        break;
      case SECRET_MANAGER:
        dumpSecretManagerSection(is);
        break;
      case CACHE_MANAGER:
        dumpCacheManagerSection(is);
        break;
      default:
        break;
      }
    }
    out.print("</fsimage>\n");
  }
}
 
Example 16
Source File: FileDownloadRandomAccessFile.java    From PRDownloader with Apache License 2.0 4 votes vote down vote up
private FileDownloadRandomAccessFile(File file) throws IOException {
    randomAccess = new RandomAccessFile(file, "rw");
    fd = randomAccess.getFD();
    out = new BufferedOutputStream(new FileOutputStream(randomAccess.getFD()));
}
 
Example 17
Source File: PBImageTextWriter.java    From big-c with Apache License 2.0 4 votes vote down vote up
public void visit(RandomAccessFile file) throws IOException {
  Configuration conf = new Configuration();
  if (!FSImageUtil.checkFileFormat(file)) {
    throw new IOException("Unrecognized FSImage");
  }

  FileSummary summary = FSImageUtil.loadSummary(file);

  try (FileInputStream fin = new FileInputStream(file.getFD())) {
    InputStream is;
    ArrayList<FileSummary.Section> sections =
        Lists.newArrayList(summary.getSectionsList());
    Collections.sort(sections,
        new Comparator<FileSummary.Section>() {
          @Override
          public int compare(FsImageProto.FileSummary.Section s1,
              FsImageProto.FileSummary.Section s2) {
            FSImageFormatProtobuf.SectionName n1 =
                FSImageFormatProtobuf.SectionName.fromString(s1.getName());
            FSImageFormatProtobuf.SectionName n2 =
                FSImageFormatProtobuf.SectionName.fromString(s2.getName());
            if (n1 == null) {
              return n2 == null ? 0 : -1;
            } else if (n2 == null) {
              return -1;
            } else {
              return n1.ordinal() - n2.ordinal();
            }
          }
        });

    for (FileSummary.Section section : sections) {
      fin.getChannel().position(section.getOffset());
      is = FSImageUtil.wrapInputStreamForCompression(conf,
          summary.getCodec(), new BufferedInputStream(new LimitInputStream(
              fin, section.getLength())));
      switch (SectionName.fromString(section.getName())) {
      case STRING_TABLE:
        stringTable = FSImageLoader.loadStringTable(is);
        break;
      default:
        break;
      }
    }

    loadDirectories(fin, sections, summary, conf);
    loadINodeDirSection(fin, sections, summary, conf);
    metadataMap.sync();
    output(conf, summary, fin, sections);
  }
}
 
Example 18
Source File: PBImageXmlWriter.java    From big-c with Apache License 2.0 4 votes vote down vote up
public void visit(RandomAccessFile file) throws IOException {
  if (!FSImageUtil.checkFileFormat(file)) {
    throw new IOException("Unrecognized FSImage");
  }

  FileSummary summary = FSImageUtil.loadSummary(file);
  try (FileInputStream fin = new FileInputStream(file.getFD())) {
    out.print("<?xml version=\"1.0\"?>\n<fsimage>");

    ArrayList<FileSummary.Section> sections = Lists.newArrayList(summary
        .getSectionsList());
    Collections.sort(sections, new Comparator<FileSummary.Section>() {
      @Override
      public int compare(FileSummary.Section s1, FileSummary.Section s2) {
        SectionName n1 = SectionName.fromString(s1.getName());
        SectionName n2 = SectionName.fromString(s2.getName());
        if (n1 == null) {
          return n2 == null ? 0 : -1;
        } else if (n2 == null) {
          return -1;
        } else {
          return n1.ordinal() - n2.ordinal();
        }
      }
    });

    for (FileSummary.Section s : sections) {
      fin.getChannel().position(s.getOffset());
      InputStream is = FSImageUtil.wrapInputStreamForCompression(conf,
          summary.getCodec(), new BufferedInputStream(new LimitInputStream(
              fin, s.getLength())));

      switch (SectionName.fromString(s.getName())) {
      case NS_INFO:
        dumpNameSection(is);
        break;
      case STRING_TABLE:
        loadStringTable(is);
        break;
      case INODE:
        dumpINodeSection(is);
        break;
      case INODE_REFERENCE:
        dumpINodeReferenceSection(is);
        break;
      case INODE_DIR:
        dumpINodeDirectorySection(is);
        break;
      case FILES_UNDERCONSTRUCTION:
        dumpFileUnderConstructionSection(is);
        break;
      case SNAPSHOT:
        dumpSnapshotSection(is);
        break;
      case SNAPSHOT_DIFF:
        dumpSnapshotDiffSection(is);
        break;
      case SECRET_MANAGER:
        dumpSecretManagerSection(is);
        break;
      case CACHE_MANAGER:
        dumpCacheManagerSection(is);
        break;
      default:
        break;
      }
    }
    out.print("</fsimage>\n");
  }
}
 
Example 19
Source File: FSImageLoader.java    From big-c with Apache License 2.0 4 votes vote down vote up
/**
 * Load fsimage into the memory.
 * @param inputFile the filepath of the fsimage to load.
 * @return FSImageLoader
 * @throws IOException if failed to load fsimage.
 */
static FSImageLoader load(String inputFile) throws IOException {
  Configuration conf = new Configuration();
  RandomAccessFile file = new RandomAccessFile(inputFile, "r");
  if (!FSImageUtil.checkFileFormat(file)) {
    throw new IOException("Unrecognized FSImage");
  }

  FsImageProto.FileSummary summary = FSImageUtil.loadSummary(file);


  try (FileInputStream fin = new FileInputStream(file.getFD())) {
    // Map to record INodeReference to the referred id
    ImmutableList<Long> refIdList = null;
    String[] stringTable = null;
    byte[][] inodes = null;
    Map<Long, long[]> dirmap = null;

    ArrayList<FsImageProto.FileSummary.Section> sections =
        Lists.newArrayList(summary.getSectionsList());
    Collections.sort(sections,
        new Comparator<FsImageProto.FileSummary.Section>() {
          @Override
          public int compare(FsImageProto.FileSummary.Section s1,
                             FsImageProto.FileSummary.Section s2) {
            FSImageFormatProtobuf.SectionName n1 =
                FSImageFormatProtobuf.SectionName.fromString(s1.getName());
            FSImageFormatProtobuf.SectionName n2 =
                FSImageFormatProtobuf.SectionName.fromString(s2.getName());
            if (n1 == null) {
              return n2 == null ? 0 : -1;
            } else if (n2 == null) {
              return -1;
            } else {
              return n1.ordinal() - n2.ordinal();
            }
          }
        });

    for (FsImageProto.FileSummary.Section s : sections) {
      fin.getChannel().position(s.getOffset());
      InputStream is = FSImageUtil.wrapInputStreamForCompression(conf,
          summary.getCodec(), new BufferedInputStream(new LimitInputStream(
          fin, s.getLength())));

      LOG.debug("Loading section " + s.getName() + " length: " + s.getLength
              ());
      switch (FSImageFormatProtobuf.SectionName.fromString(s.getName())) {
        case STRING_TABLE:
          stringTable = loadStringTable(is);
          break;
        case INODE:
          inodes = loadINodeSection(is);
          break;
        case INODE_REFERENCE:
          refIdList = loadINodeReferenceSection(is);
          break;
        case INODE_DIR:
          dirmap = loadINodeDirectorySection(is, refIdList);
          break;
        default:
          break;
      }
    }
    return new FSImageLoader(stringTable, inodes, dirmap);
  }
}
 
Example 20
Source File: FileDownloadRandomAccessFile.java    From FileDownloader with Apache License 2.0 4 votes vote down vote up
FileDownloadRandomAccessFile(File file) throws IOException {
    randomAccess = new RandomAccessFile(file, "rw");
    fd = randomAccess.getFD();
    out = new BufferedOutputStream(new FileOutputStream(randomAccess.getFD()));
}