Package ucar.nc2.util

Class IO

java.lang.Object
ucar.nc2.util.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 Details

    • default_file_buffersize

      public static final int default_file_buffersize
      See Also:
    • default_socket_buffersize

      public static final int default_socket_buffersize
      See Also:
  • Constructor Details

    • IO

      public IO()
  • Method Details

    • 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
    • touch

      public static long touch(InputStream in, int buffersize) throws IOException
      Throws:
      IOException
    • 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
    • touch

      public static long touch(FileChannel in, int buffersize) throws IOException
      Throws:
      IOException
    • 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
    • copy

      @Deprecated public static void copy(InputStream in, OutputStream out, int n) throws IOException
      Deprecated.
      use copyMaxBytes()
      Throws:
      IOException
    • 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
    • copyFileWithChannels

      public static void copyFileWithChannels(File fileIn, WritableByteChannel out) throws IOException
      Throws:
      IOException
    • 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
    • appendToFile

      public static long appendToFile(InputStream in, String fileOutName) throws IOException
      Throws:
      IOException
    • 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