All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.org.python.core.util.FileUtil Maven / Gradle / Ivy

Go to download

Jython is an implementation of the high-level, dynamic, object-oriented language Python written in 100% Pure Java, and seamlessly integrated with the Java platform. It thus allows you to run Python on any Java platform.

There is a newer version: 2.7.4b2
Show newest version
// Copyright (c) 2003 Jython project
package org.python.core.util;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.python.core.PyFile;

/**
 * Utility methods for Java file handling.
 */
public class FileUtil {
    /**
     * Creates a PyFile with mode that reads from the given InputStream using bufsize.
     */
    public static PyFile wrap(InputStream is, String mode, int bufsize) {
        return new PyFile(is, "", mode, bufsize, true);
    }

    /**
     * Creates a PyFile with mode that reads from the InputStream.
     */
    public static PyFile wrap(InputStream is, String mode) {
        return wrap(is, mode, -1);
    }

    /**
     * Creates a PyFile in text mode that reads from the given InputStream
     * using bufsize.
     */
    public static PyFile wrap(InputStream is, int bufsize) {
        return wrap(is, "r", bufsize);
    }

    /**
     * Creates a PyFile in text mode that reads from the given InputStream.
     */
    public static PyFile wrap(InputStream is) {
        return wrap(is, -1);
    }

    /**
     * Creates a PyFile with mode that writes to the given OutputStream with the
     * given bufsize.
     */
    public static PyFile wrap(OutputStream os, String mode, int bufsize) {
        return new PyFile(os, mode, bufsize);
    }

    /**
     * Creates a PyFile with mode that writes to the given OutputStream
     */
    public static PyFile wrap(OutputStream os, String mode) {
        return wrap(os, mode, -1);
    }

    /**
     * Creates a PyFile in text mode that writes to the given OutputStream
     * with bufsize.
     */
    public static PyFile wrap(OutputStream os, int bufsize) {
        return wrap(os, "w", bufsize);
    }

    /**
     * Creates a PyFile in text mode that writes to the given OutputStream.
     */
    public static PyFile wrap(OutputStream os) {
        return wrap(os, -1);
    }

    /**
     * Read all bytes from the input stream. 

Note that using this method to * read very large streams could cause out-of-memory exceptions and/or block * for large periods of time. */ public static byte[] readBytes(InputStream in) throws IOException { final int bufsize = 8192; // nice buffer size used in JDK byte[] buf = new byte[bufsize]; ByteArrayOutputStream out = new ByteArrayOutputStream(bufsize); int count; while (true) { count = in.read(buf, 0, bufsize); if (count < 0) { break; } out.write(buf, 0, count); } return out.toByteArray(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy