当前位置: 首页>>代码示例>>Java>>正文


Java FileInputStream.getChannel方法代码示例

本文整理汇总了Java中java.io.FileInputStream.getChannel方法的典型用法代码示例。如果您正苦于以下问题:Java FileInputStream.getChannel方法的具体用法?Java FileInputStream.getChannel怎么用?Java FileInputStream.getChannel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.io.FileInputStream的用法示例。


在下文中一共展示了FileInputStream.getChannel方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: load

import java.io.FileInputStream; //导入方法依赖的package包/类
/**
 * Load the block.
 *
 * mmap and mlock the block, and then verify its checksum.
 *
 * @param length         The current length of the block.
 * @param blockIn        The block input stream.  Should be positioned at the
 *                       start.  The caller must close this.
 * @param metaIn         The meta file input stream.  Should be positioned at
 *                       the start.  The caller must close this.
 * @param blockFileName  The block file name, for logging purposes.
 *
 * @return               The Mappable block.
 */
public static MappableBlock load(long length,
    FileInputStream blockIn, FileInputStream metaIn,
    String blockFileName) throws IOException {
  MappableBlock mappableBlock = null;
  MappedByteBuffer mmap = null;
  FileChannel blockChannel = null;
  try {
    blockChannel = blockIn.getChannel();
    if (blockChannel == null) {
      throw new IOException("Block InputStream has no FileChannel.");
    }
    mmap = blockChannel.map(MapMode.READ_ONLY, 0, length);
    NativeIO.POSIX.getCacheManipulator().mlock(blockFileName, mmap, length);
    verifyChecksum(length, metaIn, blockChannel, blockFileName);
    mappableBlock = new MappableBlock(mmap, length);
  } finally {
    IOUtils.closeQuietly(blockChannel);
    if (mappableBlock == null) {
      if (mmap != null) {
        NativeIO.POSIX.munmap(mmap); // unmapping also unlocks
      }
    }
  }
  return mappableBlock;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:40,代码来源:MappableBlock.java

示例2: copyFile

import java.io.FileInputStream; //导入方法依赖的package包/类
/**
 * Creates the specified <code>toFile</code> as a byte for byte copy of the
 * <code>fromFile</code>. If <code>toFile</code> already exists, then it
 * will be replaced with a copy of <code>fromFile</code>. The name and path
 * of <code>toFile</code> will be that of <code>toFile</code>.<br/>
 * <br/>
 * <i> Note: <code>fromFile</code> and <code>toFile</code> will be closed by
 * this function.</i>
 *
 * @param fromFile
 *            - FileInputStream for the file to copy from.
 * @param toFile
 *            - FileInputStream for the file to copy to.
 */
public static void copyFile(FileInputStream fromFile, FileOutputStream toFile) throws IOException {
    FileChannel fromChannel = null;
    FileChannel toChannel = null;
    try {
        fromChannel = fromFile.getChannel();
        toChannel = toFile.getChannel();
        fromChannel.transferTo(0, fromChannel.size(), toChannel);
    } finally {
        try {
            if (fromChannel != null) {
                fromChannel.close();
            }
        } finally {
            if (toChannel != null) {
                toChannel.close();
            }
        }
    }
}
 
开发者ID:abicelis,项目名称:Remindy,代码行数:34,代码来源:FileUtil.java

示例3: copyFile

import java.io.FileInputStream; //导入方法依赖的package包/类
/**
 * Creates the specified <code>toFile</code> as a byte for byte copy of the
 * <code>fromFile</code>. If <code>toFile</code> already exists, then it
 * will be replaced with a copy of <code>fromFile</code>. The name and path
 * of <code>toFile</code> will be that of <code>toFile</code>.<br/>
 * <br/>
 * <i> Note: <code>fromFile</code> and <code>toFile</code> will be closed by
 * this function.</i>
 *
 * @param fromFile - FileInputStream for the file to copy from.
 * @param toFile   - FileOutpubStream for the file to copy to.
 */
public static void copyFile(FileInputStream fromFile, FileOutputStream toFile) throws IOException {
    FileChannel fromChannel = null;
    FileChannel toChannel = null;
    try {
        fromChannel = fromFile.getChannel();
        toChannel = toFile.getChannel();
        fromChannel.transferTo(0, fromChannel.size(), toChannel);
    } finally {
        try {
            if (fromChannel != null) {
                fromChannel.close();
            }
        } finally {
            if (toChannel != null) {
                toChannel.close();
            }
        }
    }
}
 
开发者ID:yongbeam,项目名称:AirQuickUtils,代码行数:32,代码来源:AirSdcard.java

示例4: init

import java.io.FileInputStream; //导入方法依赖的package包/类
private void init(FileInputStream is) {
        fileInputStream=is;
        fileChannel=is.getChannel();
        try{
            fileSize=fileChannel.size();
        }catch(IOException e){
            e.printStackTrace();
            fileSize=0;
        }
        boolean openok=false;
//        reader=new InputStreamReader(fileInputStream);
//
//        try{
//            readHeader();
//        }catch(IOException e){
//            log.warning("couldn't read header");
//        }
        size=fileSize/motionData.getLoggedObjectSize();
        dataInputStream=new DataInputStream(Channels.newInputStream(fileChannel));
        getSupport().firePropertyChange("position",0,position());
        position(1);

    }
 
开发者ID:SensorsINI,项目名称:jaer,代码行数:24,代码来源:MotionInputStream.java

示例5: transfer

import java.io.FileInputStream; //导入方法依赖的package包/类
static public long transfer(long position, long count, FileInputStream src, FileOutputStream dst) throws IOException {
    FileChannel srcChannel = src.getChannel();
    FileChannel dstChannel = dst.getChannel();
    if (!srcChannel.isOpen()) {
        throw new ClosedChannelException();
    }
    if (!dstChannel.isOpen()) {
        throw new ClosedChannelException();
    }

    if (position < 0 || count < 0) {
        throw new IllegalArgumentException("position=" + position + " count=" + count);
    }

    if (count == 0 || position >= srcChannel.size()) {
        return 0;
    }
    count = Math.min(count, srcChannel.size() - position);

    FileDescriptor inFd = src.getFD();
    FileDescriptor outFd = dst.getFD();
    long rc = 0;
    rc = native_sendfile_64(outFd, inFd, position, count);
    return rc;
}
 
开发者ID:archos-sa,项目名称:aos-FileCoreLibrary,代码行数:26,代码来源:ArchosFileChannel.java

示例6: getFileMD5String

import java.io.FileInputStream; //导入方法依赖的package包/类
public static String getFileMD5String(String path) {
    try {
        File file = new File(path);
        FileInputStream in = new FileInputStream(file);
        FileChannel ch = in.getChannel();
        MappedByteBuffer byteBuffer = ch.map(FileChannel.MapMode.READ_ONLY, 0, file.length());
        MessageDigest messageDigest = MessageDigest.getInstance("MD5");
        messageDigest.update(byteBuffer);
        return bufferToHex(messageDigest.digest());
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}
 
开发者ID:XFY9326,项目名称:CatchSpy,代码行数:15,代码来源:Code.java

示例7: index

import java.io.FileInputStream; //导入方法依赖的package包/类
public void index(Map<String, Object> context) throws Exception {
    long size;
    String content;
    String modified;
    File file = LoggerFactory.getFile();
    if (file != null && file.exists()) {
        FileInputStream fis = new FileInputStream(file);
        FileChannel channel = fis.getChannel();
        size = channel.size();
        ByteBuffer bb;
        if (size <= SHOW_LOG_LENGTH) {
            bb = ByteBuffer.allocate((int) size);
            channel.read(bb, 0);
        } else {
            int pos = (int) (size - SHOW_LOG_LENGTH);
            bb = ByteBuffer.allocate(SHOW_LOG_LENGTH);
            channel.read(bb, pos);
        }
        bb.flip();
        content = new String(bb.array()).replace("<", "&lt;").replace(">", "&gt;");
        modified = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(file.lastModified()));
    } else {
        size = 0;
        content = "";
        modified = "Not exist";
    }
    Level level = LoggerFactory.getLevel();
    context.put("name", file == null ? "" : file.getAbsoluteFile());
    context.put("size", String.valueOf(size));
    context.put("level", level == null ? "" : level);
    context.put("modified", modified);
    context.put("content", content);
}
 
开发者ID:dachengxi,项目名称:EatDubbo,代码行数:34,代码来源:Logs.java

示例8: ResettableInputStream

import java.io.FileInputStream; //导入方法依赖的package包/类
/**
 * @param file
 *            can be null if not known
 */
private ResettableInputStream(FileInputStream fis, File file) throws IOException {
    super(fis);
    this.file = file;
    this.fis = fis;
    this.fileChannel = fis.getChannel();
    this.markPos = fileChannel.position();
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:12,代码来源:ResettableInputStream.java

示例9: copyFile

import java.io.FileInputStream; //导入方法依赖的package包/类
/**
     * copy a file
     *
     * @param source source file
     * @param dest   destination file
     * @return null on success; error message on failure
     */
    private static String copyFile(Context ctx, File source, File dest) {

//        if (ContextCompat.checkSelfPermission(ctx, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
        if (!FileUtils.isFileSystemAccessGranted(ctx)) {
            return mResources.getString(R.string.error_102);
        }

        FileChannel in;
        FileChannel out;
        try {
            FileInputStream fileInputStream = new FileInputStream(source);
            in = fileInputStream.getChannel();
            FileOutputStream fileOutputStream = new FileOutputStream(dest);
            out = fileOutputStream.getChannel();

            long size = in.size();
            MappedByteBuffer buf = in.map(FileChannel.MapMode.READ_ONLY, 0, size);

            out.write(buf);

            fileInputStream.close();
            fileOutputStream.close();
            in.close();
            out.close();
        }
        catch (IOException e) {
//            Toast toast = Toast.makeText(ctx, "Error: " + e.getMessage(), Toast.LENGTH_LONG);
//            toast.show();
            mLastException = e;
            mLastErrorMessage = e.getMessage();
            return e.getMessage();
        }
        return null;
    }
 
开发者ID:mkeresztes,项目名称:AndiCar,代码行数:42,代码来源:FileUtils.java

示例10: getDataFileChannel

import java.io.FileInputStream; //导入方法依赖的package包/类
/**
 * Returns {@code FileChennel} for the specified data file located in the
 * {@code org.netbeans.modules.search.data} package.
 * @param fileName - name of the data file.
 * @return {@code FileChennel} of the data file.
 */
public FileChannel getDataFileChannel(String fileName) {
    File file = getFile(fileName);

    FileInputStream fis = getFileInputStream(file);
    return fis.getChannel();
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:13,代码来源:BufferedCharSequenceTest.java

示例11: RgxReader

import java.io.FileInputStream; //导入方法依赖的package包/类
public RgxReader(String fileName, Charset charset, int _limit) throws FileNotFoundException {

        this(CharBuffer.allocate(1024));

        fs = new FileInputStream(fileName);
        ReadableByteChannel channel = fs.getChannel();
        CharsetDecoder decoder = charset.newDecoder();
        reader = Channels.newReader(channel, decoder, -1);
        buf.limit(0);
        limit = _limit;
    }
 
开发者ID:ripreal,项目名称:V8LogScanner,代码行数:12,代码来源:RgxReader.java

示例12: exportFileByNIO

import java.io.FileInputStream; //导入方法依赖的package包/类
/**
 * @description 文件下载 nio 大缓存
 * @param response
 * @param file
 * @throws IOException
 */
public static void exportFileByNIO(HttpServletResponse response, File file) throws IOException {
    String filename = URLEncoder.encode(file.getName(), CharEncoding.UTF_8);
    response.setContentType(HttpUtil.CONTENT_TYPE_APPLICATION_OCTET_STREAM);
    response.setContentLength((int) file.length());
    response.setHeader(HttpUtil.CONTENT_DISPOSITION, "attachment;filename=" + filename);
    response.setHeader(HttpUtil.LOCATION, filename);
    ServletOutputStream op = response.getOutputStream();
    int bufferSize = 1024 * 128;
    FileInputStream fileInputStream = new FileInputStream(file.getPath());
    FileChannel fileChannel = fileInputStream.getChannel();
    ByteBuffer bb = ByteBuffer.allocateDirect(1024 * 1024 * 128);
    byte[] buffer = new byte[bufferSize];
    int nRead, nGet;
    while ((nRead = fileChannel.read(bb)) != -1) {
        if (nRead == 0) {
            continue;
        }
        bb.position(0);
        bb.limit(nRead);
        while (bb.hasRemaining()) {
            nGet = Math.min(bb.remaining(), bufferSize);
            bb.get(buffer, 0, nGet);
            op.write(buffer);
        }
        bb.clear();
    }
    fileChannel.close();
    fileInputStream.close();
}
 
开发者ID:tong12580,项目名称:OutsourcedProject,代码行数:36,代码来源:FileManagementUtil.java

示例13: getBufferFromUri

import java.io.FileInputStream; //导入方法依赖的package包/类
@SuppressWarnings("resource")
public ByteBuffer getBufferFromUri(String uri, Path containingFolder) throws IOException {
	// 2.0以后只在外部存储bin文件
	Path binPath = containingFolder.resolve(uri);
	FileInputStream fis = new FileInputStream(binPath.toFile());
	FileChannel channel = fis.getChannel();
	ByteBuffer byteBuffer = ByteBuffer.allocate((int) channel.size());
	channel.read(byteBuffer);
	return byteBuffer;
}
 
开发者ID:shenan4321,项目名称:BIMplatform,代码行数:11,代码来源:GlbToB3dmConvertor.java

示例14: openSampleData

import java.io.FileInputStream; //导入方法依赖的package包/类
static ObjectStream<POSSample> openSampleData(String sampleDataName, File sampleDataFile, Charset encoding) {
    CmdLineUtil.checkInputFile(sampleDataName + " Data", sampleDataFile);
    FileInputStream sampleDataIn = CmdLineUtil.openInFile(sampleDataFile);
    ObjectStream<String> lineStream = new PlainTextByLineStream(sampleDataIn.getChannel(), encoding);
    return new WordTagSampleStream(lineStream);
}
 
开发者ID:radsimu,项目名称:UaicNlpToolkit,代码行数:7,代码来源:POStrainer.java

示例15: onCreate

import java.io.FileInputStream; //导入方法依赖的package包/类
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ArrayList<String> arData = new ArrayList<String>();
    mAdapter = new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, arData);
    ListView list = (ListView)findViewById(R.id.logList);
    mAdapter.add("ssss");
    list.setAdapter(mAdapter);

    try {
        FileInputStream fis = openFileInput("MousePos.txt");
        FileChannel inChannel = fis.getChannel();

        final int s = fis.available();
        ByteBuffer buff = ByteBuffer.allocate((int)fis.available());
        buff.clear();

        inChannel.read(buff);

        buff.rewind();

        final int posSize = s/4;
        float[] pos = new float[posSize];
        buff.asFloatBuffer().get(pos);

        inChannel.close();

        for (int i=0; i < posSize; i+=2)
        {
            mAdapter.add("" + pos[i] + ", " + pos[i+1]);
        }

        fis.close();
    } catch (Exception e) {
        System.err.println(e.getMessage());
    }

    list.setOnTouchListener(this);
}
 
开发者ID:jjuiddong,项目名称:Android-Practice,代码行数:42,代码来源:MainActivity.java


注:本文中的java.io.FileInputStream.getChannel方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。