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

The following are Jave code examples for showing how to use getFD() of the java.io.RandomAccessFile class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
Example 1
Project: hadoop-oss   File: NativeIO.java   Source Code and License Vote up 6 votes
/**
 * 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 2
Project: big_data   File: NativeIOaa.java   Source Code and License Vote up 6 votes
/**
 * 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 3
Project: parabuild-ci   File: ScaledRAFile.java   Source Code and License Vote up 6 votes
ScaledRAFile(Database database, String name, RandomAccessFile file,
             boolean readonly) throws FileNotFoundException, IOException {

    this.appLog   = database.logger.appLog;
    this.readOnly = readonly;
    this.fileName = name;
    this.file     = file;

    int bufferScale = database.getProperties().getIntegerProperty(
        HsqlDatabaseProperties.hsqldb_raf_buffer_scale, 12, 8, 13);
    int bufferSize = 1 << bufferScale;

    buffer         = new byte[bufferSize];
    ba             = new HsqlByteArrayInputStream(buffer);
    fileDescriptor = file.getFD();
    fileLength = length();
}
 
Example 4
Project: hadoop   File: FadvisedFileRegion.java   Source Code and License Vote up 6 votes
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 5
Project: hadoop   File: FileDistributionCalculator.java   Source Code and License Vote up 6 votes
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
Project: hadoop   File: NativeIO.java   Source Code and License Vote up 6 votes
/**
 * 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 7
Project: hadoop   File: FadvisedChunkedFile.java   Source Code and License Vote up 5 votes
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 8
Project: FileDownloader-master   File: FileDownloadRandomAccessFile.java   Source Code and License Vote up 4 votes
FileDownloadRandomAccessFile(File file) throws IOException {
    randomAccess = new RandomAccessFile(file, "rw");
    fd = randomAccess.getFD();
    out = new BufferedOutputStream(new FileOutputStream(randomAccess.getFD()));
}
 
Example 9
Project: hadoop   File: PBImageTextWriter.java   Source Code and License Vote up 4 votes
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();
            }
          }
        });

    ImmutableList<Long> refIdList = null;
    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:
        LOG.info("Loading string table");
        stringTable = FSImageLoader.loadStringTable(is);
        break;
      case INODE_REFERENCE:
        // Load INodeReference so that all INodes can be processed.
        // Snapshots are not handled and will just be ignored for now.
        LOG.info("Loading inode references");
        refIdList = FSImageLoader.loadINodeReferenceSection(is);
        break;
      default:
        break;
      }
    }

    loadDirectories(fin, sections, summary, conf);
    loadINodeDirSection(fin, sections, summary, conf, refIdList);
    metadataMap.sync();
    output(conf, summary, fin, sections);
  }
}
 
Example 10
Project: hadoop   File: PBImageXmlWriter.java   Source Code and License Vote up 4 votes
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 11
Project: hadoop   File: FSImageLoader.java   Source Code and License Vote up 4 votes
/**
 * 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())));

      if (LOG.isDebugEnabled()) {
        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 12
Project: RLibrary   File: FileDownloadRandomAccessFile.java   Source Code and License Vote up 4 votes
FileDownloadRandomAccessFile(File file) throws IOException {
    randomAccess = new RandomAccessFile(file, "rw");
    fd = randomAccess.getFD();
    out = new BufferedOutputStream(new FileOutputStream(randomAccess.getFD()));
}