java.io.InputStream#available ( )源码实例Demo

下面列出了java.io.InputStream#available ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: sana.mobile   文件: SanaUtil.java
/**
 * Inserts a procedure into the data store from a resource id
 *
 * @param ctx the Context where the data is stored
 * @param id  the raw resource id
 */
private static void insertProcedureFromResourceId(Context ctx, int id) {
    try {
        InputStream rs = ctx.getResources().openRawResource(id);
        byte[] data = new byte[rs.available()];
        rs.read(data);

        String xmlFullProcedure = new String(data);
        Procedure procedure = Procedure.fromXMLString(xmlFullProcedure);
        insertProcedure(procedure, xmlFullProcedure, ctx);
    } catch (Exception e) {
        Log.e(TAG, "Couldn't add procedure with resource id=" + id
                + " to db. Exception : " + e.toString());
        e.printStackTrace();
    }
}
 
源代码2 项目: bboxdb   文件: CompressionHandler.java
@Override
/**
 * Handle compressed packages. Uncompress envelope and handle package
 */
public boolean handleRequest(final ByteBuffer encodedPackage, 
		final short packageSequence, final ClientConnectionHandler clientConnectionHandler) {
	
	try {
		final InputStream compressedDataStream = CompressionEnvelopeRequest.decodePackage(encodedPackage);
					
		while(compressedDataStream.available() > 0) {
			clientConnectionHandler.handleNextPackage(compressedDataStream);
		}
		
	} catch (IOException | PackageEncodeException e) {
		logger.error("Got an exception while handling compression", e);
	} 
	
	return true;
}
 
源代码3 项目: jrpip   文件: BlockInputStream.java
private void fillAvailable(InputStream in, long lenLeft) throws IOException
{
    if (lenLeft < leftToCopy())
    {
        return;
    }
    int localSpace = leftToFill();
    if (localSpace == 0)
    {
        return;
    }
    int avail = in.available();
    if (avail == 0)
    {
        avail = 128;
    }
    int toFill = Math.min(localSpace, avail);
    fullyRead(in, this.buf, this.lengthRead, toFill);
    this.lengthRead += toFill;
}
 
源代码4 项目: openjdk-jdk8u   文件: BaseFileManager.java
/**
 * Make a byte buffer from an input stream.
 */
public ByteBuffer makeByteBuffer(InputStream in)
    throws IOException {
    int limit = in.available();
    if (limit < 1024) limit = 1024;
    ByteBuffer result = byteBufferCache.get(limit);
    int position = 0;
    while (in.available() != 0) {
        if (position >= limit)
            // expand buffer
            result = ByteBuffer.
                allocate(limit <<= 1).
                put((ByteBuffer)result.flip());
        int count = in.read(result.array(),
            position,
            limit - position);
        if (count < 0) break;
        result.position(position += count);
    }
    return (ByteBuffer)result.flip();
}
 
源代码5 项目: libcommon   文件: SysFs.java
public byte[] readBytes(@Nullable final String name) throws IOException {
	byte[] result;
	mReadLock.lock();
	try {
		final byte[] buf = new byte[512];
		final MyByteArrayOutputStream out = new MyByteArrayOutputStream(1024);
		final InputStream in = new BufferedInputStream(new FileInputStream(getPath(name)));
		try {
			int available = in.available();
			for (; available > 0; ) {
				final int bytes = in.read(buf);
				if (bytes > 0) {
					out.write(buf, 0, bytes);
				}
				available = in.available();
			}
			result = out.toByteArray();
		} finally {
			in.close();
		}
	} finally {
		mReadLock.unlock();
	}
	return result;
}
 
源代码6 项目: openjdk-jdk9   文件: ByteOutputStream.java
/**
 * Copies all the bytes from this input into this buffer.
 *
 * @param in input stream.
 * @exception IOException in case of an I/O error.
 */
public void write(InputStream in) throws IOException {
    if (in instanceof ByteArrayInputStream) {
        int size = in.available();
        ensureCapacity(size);
        count += in.read(buf,count,size);
        return;
    }
    while(true) {
        int cap = buf.length-count;
        int sz = in.read(buf,count,cap);
        if(sz<0)    return;     // hit EOS

        count += sz;
        if(cap==sz)
            // the buffer filled up. double the buffer
            ensureCapacity(count);
    }
}
 
源代码7 项目: PdDroidPublisher   文件: FileHelper.java
public static void copyResource(Context context, int resID, File destination) 
{
	InputStream is = context.getResources().openRawResource(resID);
       try
       {
           byte[] buffer = new byte[is.available()];
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destination));

        int l = 0;
        while((l = is.read(buffer)) > 0)
        {
            bos.write(buffer, 0, l);
        }
        bos.close();
       } 
       catch(IOException e)
       {
       	throw new Error(e);
       }
}
 
源代码8 项目: SimplicityBrowser   文件: CSSInjection.java
@SuppressWarnings("ResultOfMethodCallIgnored")
private static void instagramLight(Context context, WebView view) {
    try {
        InputStream inputStream = context.getAssets().open("instagram.css");
        byte[] buffer = new byte[inputStream.available()];
        inputStream.read(buffer);
        inputStream.close();
        String encoded = Base64.encodeToString(buffer, Base64.NO_WRAP);
        view.loadUrl("javascript:(function() {" +
                "var parent = document.getElementsByTagName('head').item(0);" +
                "var style = document.createElement('style');" +
                "style.type = 'text/css';" +
                "style.innerHTML = window.atob('" + encoded + "');" +
                "parent.appendChild(style)" +
                "})()");
    } catch (Exception e) {
        e.printStackTrace();
    }
}
 
源代码9 项目: Mupdf   文件: StreamUtils.java
/**
 * 从输入流里面读出每行文字
 */
public static ArrayList<String> loadStringLinesFromStream(InputStream in) throws IOException {
    InputStreamReader reader = new InputStreamReader(in, "UTF-8");
    BufferedReader br = new BufferedReader(reader);
    String row;
    ArrayList<String> lines = new ArrayList<String>();
    int length = in.available();
    try {
        while ((row = br.readLine()) != null) {
            lines.add(row);
        }
    } catch (OutOfMemoryError e) {

    }
    br.close();
    reader.close();
    return lines;
}
 
源代码10 项目: TelegramApi   文件: MTRpcResult.java
@Override
public void deserializeBody(InputStream stream, TLContext context) throws IOException {
    this.messageId = readLong(stream);
    int contentSize = stream.available();
    this.content = BytesCache.getInstance().allocate(contentSize);
    readBytes(this.content, 0, contentSize, stream);
}
 
源代码11 项目: AIBot   文件: Main.java
private static void printTC(){
	InputStream in = Main.class.getClassLoader().getResourceAsStream("tc.txt");
	byte[] b;
	try {
		b = new byte[in.available()];
		in.read(b, 0, b.length);
		System.out.println(new String(b, Charset.forName("UTF8")));
	} catch (IOException e) {
		//e.printStackTrace();
		return;
	}
	
}
 
源代码12 项目: slick2d-maven   文件: OggInputStream.java
/**
 * Create a new stream to decode OGG data
 * 
 * @param input The input stream from which to read the OGG file
 * @throws IOException Indicates a failure to read from the supplied stream
 */
public OggInputStream(InputStream input) throws IOException {
	this.input = input;
	total = input.available();
	
	init();
}
 
源代码13 项目: centrifuge-java   文件: Client.java
private void handleConnectionMessage(byte[] bytes) {
    if (this.disconnecting) {
        return;
    }
    InputStream stream = new ByteArrayInputStream(bytes);
    try {
        while (stream.available() > 0) {
            Protocol.Reply reply = Protocol.Reply.parseDelimitedFrom(stream);
            this.processReply(reply);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
 
源代码14 项目: Geyser   文件: LoopbackUtil.java
public static void checkLoopback(GeyserStandaloneLogger geyserLogger) {
    if (System.getProperty("os.name").equalsIgnoreCase("Windows 10")) {
        try {
            Process process = Runtime.getRuntime().exec(checkExemption);
            InputStream is = process.getInputStream();
            StringBuilder sb = new StringBuilder();

            while (process.isAlive()) {
                if (is.available() != 0) {
                    sb.append((char) is.read());
                }
            }

            String result = sb.toString();

            if (!result.contains("minecraftuwp")) {
                Files.write(Paths.get(System.getenv("temp") + "/loopback_minecraft.bat"), loopbackCommand.getBytes(), new OpenOption[0]);
                process = Runtime.getRuntime().exec(startScript);

                geyserLogger.info(ChatColor.AQUA + "Added loopback exemption to Windows!");
            }
        } catch (Exception e) {
            e.printStackTrace();

            geyserLogger.error("Couldn't auto add loopback exemption to Windows!");
        }
    }
}
 
源代码15 项目: HaoReader   文件: DocumentUtil.java
public static byte[] readBytes(Context context, Uri fileUri) {
    try {
        InputStream fis = context.getContentResolver().openInputStream(fileUri);
        int len = fis.available();
        byte[] buffer = new byte[len];
        fis.read(buffer);
        fis.close();
        return buffer;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}
 
源代码16 项目: fdroidclient   文件: Downloader.java
/**
 * This copies the downloaded data from the InputStream to the OutputStream,
 * keeping track of the number of bytes that have flowed through for the
 * progress counter.
 */
private void copyInputToOutputStream(InputStream input, int bufferSize, OutputStream output)
        throws IOException, InterruptedException {
    Timer timer = new Timer();
    try {
        bytesRead = 0;
        totalBytes = totalDownloadSize();
        byte[] buffer = new byte[bufferSize];

        timer.scheduleAtFixedRate(progressTask, 0, 100);

        // Getting the total download size could potentially take time, depending on how
        // it is implemented, so we may as well check this before we proceed.
        throwExceptionIfInterrupted();

        while (true) {

            int count;
            if (input.available() > 0) {
                int readLength = Math.min(input.available(), buffer.length);
                count = input.read(buffer, 0, readLength);
            } else {
                count = input.read(buffer);
            }

            throwExceptionIfInterrupted();

            if (count == -1) {
                Utils.debugLog(TAG, "Finished downloading from stream");
                break;
            }
            bytesRead += count;
            output.write(buffer, 0, count);
        }
    } finally {
        downloaderProgressListener = null;
        timer.cancel();
        timer.purge();
        output.flush();
        output.close();
    }
}
 
源代码17 项目: EasyHttp   文件: UpdateBody.java
public UpdateBody(InputStream inputStream, String name) throws IOException {
    this(Okio.source(inputStream), MEDIA_TYPE, name, inputStream.available());
}
 
源代码18 项目: openjdk-jdk8u   文件: ReadByte.java
public static void main(String[] args) throws Exception {
    try
    {
        setUp();

        for (int i = 0; i < 8; i++) {
            ModelByteBuffer buff;
            if(i % 2 == 0)
                buff = new ModelByteBuffer(test_file);
            else
                buff = new ModelByteBuffer(test_byte_array);
            if((i / 2) == 1)
                buff.subbuffer(5);
            if((i / 2) == 2)
                buff.subbuffer(5,500);
            if((i / 2) == 3)
                buff.subbuffer(5,600,true);

            long capacity = buff.capacity();
            InputStream is = buff.getInputStream();
            try
            {
                byte[] b = new byte[100];
                int ret = is.available();
                int n = is.read(b);
                if(n == -1)
                    throw new RuntimeException("is.read shouldn't return -1!");
                if(is.available() != ret - n)
                    throw new RuntimeException(
                            "is.available() returns incorrect value ("
                            + is.available() + "!="+(ret - n)+") !");
                is.skip(5000);
                if(is.read(b) != -1)
                    throw new RuntimeException(
                            "is.read() doesn't return -1!");

            }
            finally
            {
                is.close();
            }
            if(buff.capacity() != capacity)
                throw new RuntimeException("Capacity variable should not change!");
        }
    }
    finally
    {
        tearDown();
    }
}
 
源代码19 项目: jdk8u-dev-jdk   文件: Read.java
public static void main(String[] args) throws Exception {
    try
    {
        setUp();

        for (int i = 0; i < 8; i++) {
            ModelByteBuffer buff;
            if(i % 2 == 0)
                buff = new ModelByteBuffer(test_file);
            else
                buff = new ModelByteBuffer(test_byte_array);
            if((i / 2) == 1)
                buff.subbuffer(5);
            if((i / 2) == 2)
                buff.subbuffer(5,500);
            if((i / 2) == 3)
                buff.subbuffer(5,600,true);

            long capacity = buff.capacity();
            InputStream is = buff.getInputStream();
            try
            {
                byte[] b = new byte[100];
                int ret = is.available();
                int n = is.read();
                if(n == -1)
                    throw new RuntimeException("is.read shouldn't return -1!");
                if(is.available() != ret - 1)
                    throw new RuntimeException(
                            "is.available() returns incorrect value ("
                            + is.available() + "!="+(ret - 1)+") !");
                is.skip(5000);
                if(is.read() != -1)
                    throw new RuntimeException(
                            "is.read() doesn't return -1!");
            }
            finally
            {
                is.close();
            }
            if(buff.capacity() != capacity)
                throw new RuntimeException("Capacity variable should not change!");
        }
    }
    finally
    {
        tearDown();
    }
}
 
源代码20 项目: birt   文件: PDFImageLM.java
/**
 * get intrinsic dimension of image in pixels. Now only support png, bmp,
 * jpg, gif.
 * 
 * @param in
 * @return
 * @throws IOException
 * @throws MalformedURLException
 * @throws BadElementException
 */
protected Dimension getIntrinsicDimension( IImageContent content )
		throws BadElementException, MalformedURLException, IOException
{
	Image image = null;
	switch ( content.getImageSource( ) )
	{
		case IImageContent.IMAGE_FILE :
			ReportDesignHandle design = content.getReportContent( )
					.getDesign( ).getReportDesign( );
			URL url = design.findResource( content.getURI( ),
					IResourceLocator.IMAGE, content.getReportContent( )
							.getReportContext( ) == null ? null : content
							.getReportContent( ).getReportContext( )
							.getAppContext( ) );
			InputStream in = url.openStream( );
			try
			{
				byte[] buffer = new byte[in.available( )];
				in.read( buffer );
				image = Image.getInstance( buffer );
			}
			catch ( Exception ex )
			{
				logger.log( Level.WARNING, ex.getMessage( ), ex );
			}
			finally
			{
				in.close( );
			}
			break;
		case IImageContent.IMAGE_NAME :
		case IImageContent.IMAGE_EXPRESSION :
			image = Image.getInstance( content.getData( ) );
			break;

		case IImageContent.IMAGE_URL :
			image = Image.getInstance( new URL( content.getURI( ) ) );
			break;
		default :
			assert ( false );
	}
	if ( image != null )
	{
		int resolution = 96;
		int contentResolution = content.getResolution( );
		if ( contentResolution != 0 )
		{
			resolution = contentResolution;
		}
		return new Dimension( (int) ( image.getPlainWidth( ) * 1000
				/ resolution * 72 ), (int) ( image.getPlainHeight( ) * 1000
				/ resolution * 72 ) );
	}
	return null;
}