Class Util

java.lang.Object
com.squareup.okhttp.internal.Util

public final class Util
extends Object
Junk drawer of utility methods.
  • Field Details

    • EMPTY_BYTE_ARRAY

      public static final byte[] EMPTY_BYTE_ARRAY
    • EMPTY_STRING_ARRAY

      public static final String[] EMPTY_STRING_ARRAY
    • ISO_8859_1

      public static final Charset ISO_8859_1
      A cheap and type-safe constant for the ISO-8859-1 Charset.
    • US_ASCII

      public static final Charset US_ASCII
      A cheap and type-safe constant for the US-ASCII Charset.
    • UTF_8

      public static final Charset UTF_8
      A cheap and type-safe constant for the UTF-8 Charset.
  • Method Details

    • getEffectivePort

      public static int getEffectivePort​(URI uri)
    • getEffectivePort

      public static int getEffectivePort​(URL url)
    • getDefaultPort

      public static int getDefaultPort​(String scheme)
    • checkOffsetAndCount

      public static void checkOffsetAndCount​(int arrayLength, int offset, int count)
    • pokeInt

      public static void pokeInt​(byte[] dst, int offset, int value, ByteOrder order)
    • equal

      public static boolean equal​(Object a, Object b)
      Returns true if two possibly-null objects are equal.
    • closeQuietly

      public static void closeQuietly​(Closeable closeable)
      Closes closeable, ignoring any checked exceptions. Does nothing if closeable is null.
    • closeQuietly

      public static void closeQuietly​(Socket socket)
      Closes socket, ignoring any checked exceptions. Does nothing if socket is null.
    • closeAll

      public static void closeAll​(Closeable a, Closeable b) throws IOException
      Closes a and b. If either close fails, this completes the other close and rethrows the first encountered exception.
      Throws:
      IOException
    • deleteContents

      public static void deleteContents​(File dir) throws IOException
      Deletes the contents of dir. Throws an IOException if any file could not be deleted, or if dir is not a readable directory.
      Throws:
      IOException
    • readSingleByte

      public static int readSingleByte​(InputStream in) throws IOException
      Implements InputStream.read(int) in terms of InputStream.read(byte[], int, int). InputStream assumes that you implement InputStream.read(int) and provides default implementations of the others, but often the opposite is more efficient.
      Throws:
      IOException
    • writeSingleByte

      public static void writeSingleByte​(OutputStream out, int b) throws IOException
      Implements OutputStream.write(int) in terms of OutputStream.write(byte[], int, int). OutputStream assumes that you implement OutputStream.write(int) and provides default implementations of the others, but often the opposite is more efficient.
      Throws:
      IOException
    • readFully

      public static void readFully​(InputStream in, byte[] dst) throws IOException
      Fills 'dst' with bytes from 'in', throwing EOFException if insufficient bytes are available.
      Throws:
      IOException
    • readFully

      public static void readFully​(InputStream in, byte[] dst, int offset, int byteCount) throws IOException
      Reads exactly 'byteCount' bytes from 'in' (into 'dst' at offset 'offset'), and throws EOFException if insufficient bytes are available. Used to implement DataInputStream.readFully(byte[], int, int).
      Throws:
      IOException
    • readFully

      public static String readFully​(Reader reader) throws IOException
      Returns the remainder of 'reader' as a string, closing it when done.
      Throws:
      IOException
    • skipAll

      public static void skipAll​(InputStream in) throws IOException
      Throws:
      IOException
    • skipByReading

      public static long skipByReading​(InputStream in, long byteCount) throws IOException
      Call in.read() repeatedly until either the stream is exhausted or byteCount bytes have been read.

      This method reuses the skip buffer but is careful to never use it at the same time that another stream is using it. Otherwise streams that use the caller's buffer for consistency checks like CRC could be clobbered by other threads. A thread-local buffer is also insufficient because some streams may call other streams in their skip() method, also clobbering the buffer.

      Throws:
      IOException
    • copy

      public static int copy​(InputStream in, OutputStream out) throws IOException
      Copies all of the bytes from in to out. Neither stream is closed. Returns the total number of bytes transferred.
      Throws:
      IOException
    • readAsciiLine

      public static String readAsciiLine​(InputStream in) throws IOException
      Returns the ASCII characters up to but not including the next "\r\n", or "\n".
      Throws:
      EOFException - if the stream is exhausted before the next newline character.
      IOException
    • immutableList

      public static <T> List<T> immutableList​(List<T> list)
      Returns an immutable copy of list.
    • daemonThreadFactory

      public static ThreadFactory daemonThreadFactory​(String name)