⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readonlyaccessbytearray.java.svn-base

📁 java下操作rar文件,创建,压缩/解压缩等等.
💻 SVN-BASE
字号:
/*
 * Copyright (c) 2007 innoSysTec (R) GmbH, Germany. All rights reserved.
 * Original author: Edmund Wagner
 * Creation date: 30.05.2007
 *
 * Source: $HeadURL$
 * Last changed: $LastChangedDate$
 * 
 * the unrar licence applies to all junrar source and binary distributions 
 * you are not allowed to use this source to re-create the RAR compression algorithm
 * 
 * Here some html entities which can be used for escaping javadoc tags:
 * "&":  "&" or "&"
 * "<":  "&#060;" or "&lt;"
 * ">":  "&#062;" or "&gt;"
 * "@":  "&#064;" 
 */
package de.innosystec.unrar.io;

/**
 * A File like access to a byte array.
 * (seek and read certain number of bytes)
 *
 * @author $LastChangedBy$
 * @version $LastChangedRevision$
 */
public class ReadOnlyAccessByteArray implements IReadOnlyAccess{
	private long positionInFile;
	private byte[] file;
	
	/**
	 * Initialize with byte[ ]
	 * @param file the file given as byte array
	 */
	public ReadOnlyAccessByteArray(byte[] file){
		if(file == null){
			throw new NullPointerException("file must not be null!!");
		}
		this.file = file;
		this.positionInFile = 0;
	}
	
	public long getPosition() {
		return positionInFile;
	}

	public int readBytes(byte[] buffer, int count) {
		if(buffer == null ){
			throw new NullPointerException("buffer must not be null");
		}
		if(count == 0){
			throw new IllegalArgumentException("cannot read 0 bytes ;-)");
		}
		int read = Math.min(count, file.length-(int)positionInFile-1);	
		System.arraycopy(file, (int)positionInFile, buffer, 0, read );
		positionInFile+=read;
;		return read;
	}

	public boolean setPosition(long pos) {
		if(pos < file.length && pos >= 0){
			this.positionInFile = pos;
			return true;
		}else{
			return false;
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -