[prev in list] [next in list] [prev in thread] [next in thread]
List: jakarta-commons-dev
Subject: [1/2] commons-compress git commit: move IOUtils
From: bodewig () apache ! org
Date: 2017-04-29 17:55:04
Message-ID: 0af2e2dd241b42e7aab09fe34a0d2666 () git ! apache ! org
[Download RAW message or body]
Repository: commons-compress
Updated Branches:
refs/heads/compress-2.0 0a6d97a12 -> b74e53866
move IOUtils
Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/27686efc
Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/27686efc
Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/27686efc
Branch: refs/heads/compress-2.0
Commit: 27686efc56d4d10bc110443955da5d80ffb5a8b2
Parents: 0a6d97a
Author: Stefan Bodewig <bodewig@apache.org>
Authored: Sat Apr 29 19:49:20 2017 +0200
Committer: Stefan Bodewig <bodewig@apache.org>
Committed: Sat Apr 29 19:49:20 2017 +0200
----------------------------------------------------------------------
.../compress2/formats/ar/ArArchiveInput.java | 1 +
.../commons/compress2/formats/ar/IOUtils.java | 204 -------------------
.../apache/commons/compress2/util/IOUtils.java | 203 ++++++++++++++++++
.../formats/ar/ArArchiveFormatTest.java | 2 +-
.../compress2/formats/ar/RoundTripTest.java | 1 +
5 files changed, 206 insertions(+), 205 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/27686efc/src/main/java/org/apache/commons/compress2/formats/ar/ArArchiveInput.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/compress2/formats/ar/ArArchiveInput.java \
b/src/main/java/org/apache/commons/compress2/formats/ar/ArArchiveInput.java index \
8a62f8a..f39efec 100644
--- a/src/main/java/org/apache/commons/compress2/formats/ar/ArArchiveInput.java
+++ b/src/main/java/org/apache/commons/compress2/formats/ar/ArArchiveInput.java
@@ -31,6 +31,7 @@ import java.nio.file.attribute.FileTime;
import org.apache.commons.compress2.archivers.ArchiveEntryParameters;
import org.apache.commons.compress2.archivers.OwnerInformation;
import org.apache.commons.compress2.archivers.spi.AbstractArchiveInput;
+import org.apache.commons.compress2.util.IOUtils;
/**
* Implements the "ar" archive format.
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/27686efc/src/main/java/org/apache/commons/compress2/formats/ar/IOUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/compress2/formats/ar/IOUtils.java \
b/src/main/java/org/apache/commons/compress2/formats/ar/IOUtils.java deleted file \
mode 100644 index a7a429e..0000000
--- a/src/main/java/org/apache/commons/compress2/formats/ar/IOUtils.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.commons.compress2.formats.ar;
-
-import java.io.ByteArrayOutputStream;
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.ByteBuffer;
-import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
-
-/**
- * THIS CLASS WILL CERTAINLY NOT STAY HERE.
- * @Immutable
- */
-final class IOUtils {
-
- /** Private constructor to prevent instantiation of this utility class. */
- private IOUtils(){
- }
-
- /**
- * Copies the content of a InputStream into an OutputStream.
- * Uses a default buffer size of 8024 bytes.
- *
- * @param input
- * the InputStream to copy
- * @param output
- * the target Stream
- * @throws IOException
- * if an error occurs
- */
- public static long copy(final InputStream input, final OutputStream output) \
throws IOException {
- return copy(input, output, 8024);
- }
-
- /**
- * Copies the content of a InputStream into an OutputStream
- *
- * @param input
- * the InputStream to copy
- * @param output
- * the target Stream
- * @param buffersize
- * the buffer size to use
- * @throws IOException
- * if an error occurs
- */
- public static long copy(final InputStream input, final OutputStream output, int \
buffersize) throws IOException {
- final byte[] buffer = new byte[buffersize];
- int n = 0;
- long count=0;
- while (-1 != (n = input.read(buffer))) {
- output.write(buffer, 0, n);
- count += n;
- }
- return count;
- }
-
- public static long copy(final ReadableByteChannel input, final \
WritableByteChannel output) throws IOException {
- return copy(input, output, 4096);
- }
-
- public static long copy(final ReadableByteChannel input, final \
WritableByteChannel output, int buffersize) throws IOException {
- ByteBuffer buffer = ByteBuffer.allocate(buffersize);
- int n = 0;
- long count=0;
- while (-1 != (n = input.read(buffer))) {
- buffer.flip();
- output.write(buffer);
- buffer.clear();
- count += n;
- }
- return count;
- }
-
- /**
- * Skips the given number of bytes by repeatedly invoking skip on
- * the given input stream if necessary.
- *
- * <p>This method will only skip less than the requested number of
- * bytes if the end of the input stream has been reached.</p>
- *
- * @param input stream to skip bytes in
- * @param numToSkip the number of bytes to skip
- * @return the number of bytes actually skipped
- * @throws IOException
- */
- public static long skip(InputStream input, long numToSkip) throws IOException {
- long available = numToSkip;
- while (numToSkip > 0) {
- long skipped = input.skip(numToSkip);
- if (skipped == 0) {
- break;
- }
- numToSkip -= skipped;
- }
- return available - numToSkip;
- }
-
- /**
- * Reads as much from input as possible to fill the given array.
- *
- * <p>This method may invoke read repeatedly to fill the array and
- * only read less bytes than the length of the array if the end of
- * the stream has been reached.</p>
- *
- * @param input stream to read from
- * @param b buffer to fill
- * @return the number of bytes actually read
- * @throws IOException
- */
- public static int readFully(InputStream input, byte[] b) throws IOException {
- return readFully(input, b, 0, b.length);
- }
-
- /**
- * Reads as much from input as possible to fill the given array
- * with the given amount of bytes.
- *
- * <p>This method may invoke read repeatedly to read the bytes and
- * only read less bytes than the requested length if the end of
- * the stream has been reached.</p>
- *
- * @param input stream to read from
- * @param b buffer to fill
- * @param offset offset into the buffer to start filling at
- * @param len of bytes to read
- * @return the number of bytes actually read
- * @throws IOException
- * if an I/O error has occurred
- */
- public static int readFully(InputStream input, byte[] b, int offset, int len)
- throws IOException {
- if (len < 0 || offset < 0 || len + offset > b.length) {
- throw new IndexOutOfBoundsException();
- }
- int count = 0, x = 0;
- while (count != len) {
- x = input.read(b, offset + count, len - count);
- if (x == -1) {
- break;
- }
- count += x;
- }
- return count;
- }
-
- // toByteArray(InputStream) copied from:
- // commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java?revision=1428941
- // January 8th, 2013
- //
- // Assuming our copy() works just as well as theirs! :-)
-
- /**
- * Gets the contents of an <code>InputStream</code> as a <code>byte[]</code>.
- * <p>
- * This method buffers the input internally, so there is no need to use a
- * <code>BufferedInputStream</code>.
- *
- * @param input the <code>InputStream</code> to read from
- * @return the requested byte array
- * @throws NullPointerException if the input is null
- * @throws IOException if an I/O error occurs
- * @since 1.5
- */
- public static byte[] toByteArray(final InputStream input) throws IOException {
- final ByteArrayOutputStream output = new ByteArrayOutputStream();
- copy(input, output);
- return output.toByteArray();
- }
-
- /**
- * Closes the given Closeable and swallows any IOException that may occur.
- * @param c Closeable to close, can be null
- * @since 1.7
- */
- public static void closeQuietly(Closeable c) {
- if (c != null) {
- try {
- c.close();
- } catch (IOException ignored) { // NOPMD
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/27686efc/src/main/java/org/apache/commons/compress2/util/IOUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/compress2/util/IOUtils.java \
b/src/main/java/org/apache/commons/compress2/util/IOUtils.java new file mode 100644
index 0000000..35105e3
--- /dev/null
+++ b/src/main/java/org/apache/commons/compress2/util/IOUtils.java
@@ -0,0 +1,203 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.commons.compress2.util;
+
+import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.ReadableByteChannel;
+import java.nio.channels.WritableByteChannel;
+
+/**
+ * @Immutable
+ */
+public final class IOUtils {
+
+ /** Private constructor to prevent instantiation of this utility class. */
+ private IOUtils(){
+ }
+
+ /**
+ * Copies the content of a InputStream into an OutputStream.
+ * Uses a default buffer size of 8024 bytes.
+ *
+ * @param input
+ * the InputStream to copy
+ * @param output
+ * the target Stream
+ * @throws IOException
+ * if an error occurs
+ */
+ public static long copy(final InputStream input, final OutputStream output) \
throws IOException { + return copy(input, output, 8024);
+ }
+
+ /**
+ * Copies the content of a InputStream into an OutputStream
+ *
+ * @param input
+ * the InputStream to copy
+ * @param output
+ * the target Stream
+ * @param buffersize
+ * the buffer size to use
+ * @throws IOException
+ * if an error occurs
+ */
+ public static long copy(final InputStream input, final OutputStream output, int \
buffersize) throws IOException { + final byte[] buffer = new byte[buffersize];
+ int n = 0;
+ long count=0;
+ while (-1 != (n = input.read(buffer))) {
+ output.write(buffer, 0, n);
+ count += n;
+ }
+ return count;
+ }
+
+ public static long copy(final ReadableByteChannel input, final \
WritableByteChannel output) throws IOException { + return copy(input, output, \
4096); + }
+
+ public static long copy(final ReadableByteChannel input, final \
WritableByteChannel output, int buffersize) throws IOException { + ByteBuffer \
buffer = ByteBuffer.allocate(buffersize); + int n = 0;
+ long count=0;
+ while (-1 != (n = input.read(buffer))) {
+ buffer.flip();
+ output.write(buffer);
+ buffer.clear();
+ count += n;
+ }
+ return count;
+ }
+
+ /**
+ * Skips the given number of bytes by repeatedly invoking skip on
+ * the given input stream if necessary.
+ *
+ * <p>This method will only skip less than the requested number of
+ * bytes if the end of the input stream has been reached.</p>
+ *
+ * @param input stream to skip bytes in
+ * @param numToSkip the number of bytes to skip
+ * @return the number of bytes actually skipped
+ * @throws IOException
+ */
+ public static long skip(InputStream input, long numToSkip) throws IOException {
+ long available = numToSkip;
+ while (numToSkip > 0) {
+ long skipped = input.skip(numToSkip);
+ if (skipped == 0) {
+ break;
+ }
+ numToSkip -= skipped;
+ }
+ return available - numToSkip;
+ }
+
+ /**
+ * Reads as much from input as possible to fill the given array.
+ *
+ * <p>This method may invoke read repeatedly to fill the array and
+ * only read less bytes than the length of the array if the end of
+ * the stream has been reached.</p>
+ *
+ * @param input stream to read from
+ * @param b buffer to fill
+ * @return the number of bytes actually read
+ * @throws IOException
+ */
+ public static int readFully(InputStream input, byte[] b) throws IOException {
+ return readFully(input, b, 0, b.length);
+ }
+
+ /**
+ * Reads as much from input as possible to fill the given array
+ * with the given amount of bytes.
+ *
+ * <p>This method may invoke read repeatedly to read the bytes and
+ * only read less bytes than the requested length if the end of
+ * the stream has been reached.</p>
+ *
+ * @param input stream to read from
+ * @param b buffer to fill
+ * @param offset offset into the buffer to start filling at
+ * @param len of bytes to read
+ * @return the number of bytes actually read
+ * @throws IOException
+ * if an I/O error has occurred
+ */
+ public static int readFully(InputStream input, byte[] b, int offset, int len)
+ throws IOException {
+ if (len < 0 || offset < 0 || len + offset > b.length) {
+ throw new IndexOutOfBoundsException();
+ }
+ int count = 0, x = 0;
+ while (count != len) {
+ x = input.read(b, offset + count, len - count);
+ if (x == -1) {
+ break;
+ }
+ count += x;
+ }
+ return count;
+ }
+
+ // toByteArray(InputStream) copied from:
+ // commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java?revision=1428941
+ // January 8th, 2013
+ //
+ // Assuming our copy() works just as well as theirs! :-)
+
+ /**
+ * Gets the contents of an <code>InputStream</code> as a <code>byte[]</code>.
+ * <p>
+ * This method buffers the input internally, so there is no need to use a
+ * <code>BufferedInputStream</code>.
+ *
+ * @param input the <code>InputStream</code> to read from
+ * @return the requested byte array
+ * @throws NullPointerException if the input is null
+ * @throws IOException if an I/O error occurs
+ * @since 1.5
+ */
+ public static byte[] toByteArray(final InputStream input) throws IOException {
+ final ByteArrayOutputStream output = new ByteArrayOutputStream();
+ copy(input, output);
+ return output.toByteArray();
+ }
+
+ /**
+ * Closes the given Closeable and swallows any IOException that may occur.
+ * @param c Closeable to close, can be null
+ * @since 1.7
+ */
+ public static void closeQuietly(Closeable c) {
+ if (c != null) {
+ try {
+ c.close();
+ } catch (IOException ignored) { // NOPMD
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/27686efc/src/test/java/org/apache/commons/compress2/formats/ar/ArArchiveFormatTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/compress2/formats/ar/ArArchiveFormatTest.java \
b/src/test/java/org/apache/commons/compress2/formats/ar/ArArchiveFormatTest.java \
index 051c0d4..c7b4165 100644
--- a/src/test/java/org/apache/commons/compress2/formats/ar/ArArchiveFormatTest.java
+++ b/src/test/java/org/apache/commons/compress2/formats/ar/ArArchiveFormatTest.java
@@ -22,7 +22,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
-
+import org.apache.commons.compress2.util.IOUtils;
import org.junit.Assert;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/27686efc/src/test/java/org/apache/commons/compress2/formats/ar/RoundTripTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/compress2/formats/ar/RoundTripTest.java \
b/src/test/java/org/apache/commons/compress2/formats/ar/RoundTripTest.java index \
77ad80f..58c8038 100644
--- a/src/test/java/org/apache/commons/compress2/formats/ar/RoundTripTest.java
+++ b/src/test/java/org/apache/commons/compress2/formats/ar/RoundTripTest.java
@@ -37,6 +37,7 @@ import org.junit.Test;
import org.apache.commons.compress2.archivers.ArchiveEntryParameters;
import org.apache.commons.compress2.archivers.ArchiveInput;
import org.apache.commons.compress2.archivers.ArchiveOutput;
+import org.apache.commons.compress2.util.IOUtils;
public class RoundTripTest {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic