Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright (C) 2012 Trillian Mobile AB
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/gpl-2.0.html>.
 */
package org.robovm.compiler.util.io;
java.io.InputStream which writes to a java.io.FileInputStream but defers opening the java.io.FileInputStream until the first write.
public class OpenOnReadFileInputStream extends InputStream {
    private final File file;
    private InputStream in;
    
    public OpenOnReadFileInputStream(File file) {
        this. = file;
    }
    
    private void ensureOpen() throws IOException {
        if ( == null) {
             = new FileInputStream();
        }
    }
    
    public void close() throws IOException {
        ensureOpen();
        .close();
    }
    public int available() throws IOException {
        ensureOpen();
        return .available();
    }
    public int read() throws IOException {
        ensureOpen();
        return .read();
    }
    public int read(byte[] bint offint lenthrows IOException {
        ensureOpen();
        return .read(bofflen);
    }
    public int read(byte[] bthrows IOException {
        ensureOpen();
        return .read(b);
    }
    public long skip(long nthrows IOException {
        ensureOpen();
        return .skip(n);
    }
New to GrepCode? Check out our FAQ X