Package ucar.nc2.util

Class IO


  • public class IO
    extends Object
    Input/Output static utilities.
    See Also:
    "http://stackoverflow.com/questions/12552863/correct-idiom-for-managing-multiple-chained-resources-in-try-with-resources-bloc"
    • Field Detail

      • default_file_buffersize

        public static final int default_file_buffersize
        See Also:
        Constant Field Values
      • default_socket_buffersize

        public static final int default_socket_buffersize
        See Also:
        Constant Field Values
    • Constructor Detail

      • IO

        public IO()
    • Method Detail

      • getFileResource

        public static InputStream getFileResource​(String resourcePath)
        Open a resource as a Stream. First try ClassLoader.getResourceAsStream(). If that fails, try a plain old FileInputStream().
        Parameters:
        resourcePath - name of file path (use forward slashes!)
        Returns:
        InputStream or null on failure
      • copy

        public static long copy​(InputStream in,
                                OutputStream out)
                         throws IOException
        copy all bytes from in to out.
        Parameters:
        in - InputStream
        out - OutputStream
        Returns:
        number of bytes copied
        Throws:
        IOException - on io error
      • copy2null

        public static long copy2null​(InputStream in,
                                     int buffersize)
                              throws IOException
        copy all bytes from in and throw them away.
        Parameters:
        in - InputStream
        buffersize - size of buffer to use, if -1 uses default value (9200)
        Returns:
        number of bytes copied
        Throws:
        IOException - on io error
      • copy2null

        public static long copy2null​(FileChannel in,
                                     int buffersize)
                              throws IOException
        copy all bytes from in and throw them away.
        Parameters:
        in - FileChannel
        buffersize - size of buffer to use, if -1 uses default value (9200)
        Returns:
        number of bytes copied
        Throws:
        IOException - on io error
      • copyB

        public static long copyB​(InputStream in,
                                 OutputStream out,
                                 int bufferSize)
                          throws IOException
        copy all bytes from in to out, specify buffer size
        Parameters:
        in - InputStream
        out - OutputStream
        bufferSize - : internal buffer size.
        Returns:
        number of bytes copied
        Throws:
        IOException - on io error
      • copyMaxBytes

        public static void copyMaxBytes​(InputStream in,
                                        OutputStream out,
                                        int maxBytes)
                                 throws IOException
        Copy up to maxBytes bytes from in to out.
        Parameters:
        in - InputStream
        out - OutputStream
        maxBytes - number of bytes to copy
        Throws:
        IOException - on io error
      • readContents

        public static String readContents​(InputStream is)
                                   throws IOException
        Read the contents from the inputStream and place into a String, with any error messages put in the return String. Assume UTF-8 encoding.
        Parameters:
        is - the inputStream to read from.
        Returns:
        String holding the contents, or an error message.
        Throws:
        IOException - on io error
      • readContents

        public static String readContents​(InputStream is,
                                          String charset)
                                   throws IOException
        Read the contents from the inputStream and place into a String, with any error messages put in the return String.
        Parameters:
        is - the inputStream to read from.
        Returns:
        String holding the contents, or an error message.
        Throws:
        IOException - on io error
      • readContentsToByteArray

        public static byte[] readContentsToByteArray​(InputStream is)
                                              throws IOException
        Read the contents from the inputStream and place into a byte array, with any error messages put in the return String.
        Parameters:
        is - the inputStream to read from.
        Returns:
        byte[] holding the contents, or an error message.
        Throws:
        IOException - on io error
      • writeContents

        public static void writeContents​(String contents,
                                         OutputStream os)
                                  throws IOException
        Wite the contents from the String to a Stream,
        Parameters:
        contents - String holding the contents.
        os - write to this OutputStream
        Throws:
        IOException - on io error
      • copyFile

        public static void copyFile​(String fileInName,
                                    String fileOutName)
                             throws IOException
        copy one file to another.
        Parameters:
        fileInName - copy from this file, which must exist.
        fileOutName - copy to this file, which is overrwritten if already exists.
        Throws:
        IOException - on io error
      • copyFile

        public static void copyFile​(File fileIn,
                                    File fileOut)
                             throws IOException
        copy one file to another.
        Parameters:
        fileIn - copy from this file, which must exist.
        fileOut - copy to this file, which is overrwritten if already exists.
        Throws:
        IOException - on io error
      • copy2File

        public static void copy2File​(byte[] src,
                                     String fileOut)
                              throws IOException
        copy file to output stream
        Parameters:
        src - source
        fileOut - copy to this file
        Throws:
        IOException - on io error
      • copyFile

        public static void copyFile​(String fileInName,
                                    OutputStream out)
                             throws IOException
        copy file to output stream
        Parameters:
        fileInName - open this file
        out - copy here
        Throws:
        IOException - on io error
      • copyFile

        public static void copyFile​(File fileIn,
                                    OutputStream out)
                             throws IOException
        copy file to output stream
        Parameters:
        fileIn - copy this file
        out - copy here
        Throws:
        IOException - on io error
      • copyFileB

        public static void copyFileB​(File fileIn,
                                     OutputStream out,
                                     int bufferSize)
                              throws IOException
        copy file to output stream, specify internal buffer size
        Parameters:
        fileIn - copy this file
        out - copy to this stream
        bufferSize - internal buffer size.
        Throws:
        IOException - on io error
      • copyRafB

        public static long copyRafB​(RandomAccessFile raf,
                                    long offset,
                                    long length,
                                    OutputStream out)
                             throws IOException
        Copy part of a RandomAccessFile to output stream
        Parameters:
        raf - copy this file
        offset - start here (byte offset)
        length - number of bytes to copy
        out - copy to this stream
        Returns:
        number of bytes copied
        Throws:
        IOException - on io error
      • copyRafB

        public static long copyRafB​(RandomAccessFile raf,
                                    long offset,
                                    long length,
                                    OutputStream out,
                                    byte[] buffer)
                             throws IOException
        Copy part of a RandomAccessFile to output stream, specify internal buffer size
        Parameters:
        raf - copy this file
        offset - start here (byte offset)
        length - number of bytes to copy
        out - copy to this stream
        buffer - use this buffer.
        Returns:
        number of bytes copied
        Throws:
        IOException - on io error
      • copyDirTree

        public static void copyDirTree​(String fromDirName,
                                       String toDirName)
                                throws IOException
        Copy an entire directory tree.
        Parameters:
        fromDirName - from this directory (do nothing if not exist)
        toDirName - to this directory (will create if not exist)
        Throws:
        IOException - on io error
      • readFileToByteArray

        public static byte[] readFileToByteArray​(String filename)
                                          throws IOException
        Read the file and place contents into a byte array, with any error messages put in the return String.
        Parameters:
        filename - the file to read from.
        Returns:
        byte[] holding the contents, or an error message.
        Throws:
        IOException - on io error
      • readFile

        public static String readFile​(String filename)
                               throws IOException
        Read the contents from the named file and place into a String, assuming UTF-8 encoding.
        Parameters:
        filename - the URL to read from.
        Returns:
        String holding the file contents
        Throws:
        IOException - on io error
      • writeToFile

        public static void writeToFile​(String contents,
                                       File file)
                                throws IOException
        Write String contents to a file, using UTF-8 encoding.
        Parameters:
        contents - String holding the contents
        file - write to this file (overwrite if exists)
        Throws:
        IOException - on io error
      • writeToFile

        public static void writeToFile​(byte[] contents,
                                       File file)
                                throws IOException
        Write byte[] contents to a file.
        Parameters:
        contents - String holding the contents
        file - write to this file (overwrite if exists)
        Throws:
        IOException - on io error
      • writeToFile

        public static void writeToFile​(String contents,
                                       String fileOutName)
                                throws IOException
        Write contents to a file, using UTF-8 encoding.
        Parameters:
        contents - String holding the contents
        fileOutName - write to this file (overwrite if exists)
        Throws:
        IOException - on io error
      • writeToFile

        public static long writeToFile​(InputStream in,
                                       String fileOutName)
                                throws IOException
        copy input stream to file. close input stream when done.
        Parameters:
        in - copy from here
        fileOutName - open this file (overwrite) and copy to it.
        Returns:
        number of bytes copied
        Throws:
        IOException - on io error
      • copyUrlB

        public static long copyUrlB​(String urlString,
                                    OutputStream out,
                                    int bufferSize)
                             throws IOException
        copy contents of URL to output stream, specify internal buffer size. request gzip encoding
        Parameters:
        urlString - copy the contents of this URL
        out - copy to this stream. If null, throw bytes away
        bufferSize - internal buffer size.
        Returns:
        number of bytes copied
        Throws:
        IOException - on io error
      • getInputStreamFromUrl

        public static InputStream getInputStreamFromUrl​(String urlString)
                                                 throws IOException
        get input stream from URL
        Parameters:
        urlString - URL
        Returns:
        input stream, unzipped if needed
        Throws:
        IOException - on io error
      • readURLtoFile

        public static String readURLtoFile​(String urlString,
                                           File file)
        read the contents from the named URL, write to a file.
        Parameters:
        urlString - the URL to read from.
        file - write to this file
        Returns:
        status or error message.
      • readURLContentsToByteArray

        public static byte[] readURLContentsToByteArray​(String urlString)
                                                 throws IOException
        Read the contents from the given URL and place into a byte array, with any error messages put in the return String.
        Parameters:
        urlString - read from this URL.
        Returns:
        byte[] holding the contents, or an error message.
        Throws:
        IOException - on io error
      • readURLtoFileWithExceptions

        public static String readURLtoFileWithExceptions​(String urlString,
                                                         File file)
                                                  throws IOException
        read the contents from the named URL, write to a file.
        Parameters:
        urlString - the URL to read from.
        file - write to this file
        Returns:
        status or error message.
        Throws:
        IOException - if failure
      • readURLtoFileWithExceptions

        public static String readURLtoFileWithExceptions​(String urlString,
                                                         File file,
                                                         int buffer_size)
                                                  throws IOException
        read the contents from the named URL, write to a file.
        Parameters:
        urlString - the URL to read from.
        file - write to this file
        buffer_size - read/write in this size chunks
        Returns:
        status or error message.
        Throws:
        IOException - if failure
      • readURLcontentsWithException

        public static String readURLcontentsWithException​(String urlString)
                                                   throws IOException
        Read the contents from the named URL and place into a String.
        Parameters:
        urlString - the URL to read from.
        Returns:
        String holding the contents.
        Throws:
        IOException - if fails
      • readURLcontents

        public static String readURLcontents​(String urlString)
        Read the contents from the named URL and place into a String, with any error messages put in the return String.
        Parameters:
        urlString - the URL to read from.
        Returns:
        String holding the contents, or an error message.
      • putToURL

        public static IO.HttpResult putToURL​(String urlString,
                                             String contents)
        use HTTP PUT to send the contents to the named URL.
        Parameters:
        urlString - the URL to read from. must be http:
        contents - String holding the contents
        Returns:
        a Result object; generally 0 <= code <=400 is ok