If you think the Android project mobilepower-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright (C) 2008-2013 Dario Scoppelletti, <http://www.scoppelletti.it/>.
* //www.java2s.com
* Licensed 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 it.scoppelletti.mobilepower.io;
import java.io.*;
import org.slf4j.*;
/**
* Funzioni di utilità <ACRONYM TITLE="input/output">I/O</ACRONYM>.
*
* @since 1.0
*/publicfinalclass IOTools {
privatestaticfinalint BUFSIZE = 1024;
privatestaticfinal Logger myLogger = LoggerFactory.getLogger("IOUtils");
/**
* Costruttore privato per classe statica.
*/private IOTools() {
}
/**
* Chiude un flusso.
*
* <P>Il metodo {@code close} chiude un flusso ignorando l’eventuale
* eccezione {@code IOException} inoltrata dall’operazione (tale
* eccezione viene emessa come segnalazione di log).<BR>
* Il valore di ritorno {@code null} può essere utilizzato per
* azzerare la stessa variabile {@code stream} del flusso in modo tale
* variabile funga anche da indicatore di flusso aperto
* ({@code stream != null}) o chiuso ({@code stream == null}).</P>
*
* @param stream Flusso. Se è {@code null}, si assume che il flusso
* sia già stato chiuso (o non sia mai stato aperto).
* @return {@code null}.
*/publicstatic <T extends Closeable> T close(T stream) {
if (stream != null) {
try {
stream.close();
} catch (IOException ex) {
myLogger.error("Failed to close stream.", ex);
}
}
return null;
}
/**
* Copia un flusso su un altro.
*
* @param in Flusso di input.
* @param out Flusso di output.
*/publicstaticvoid copy(InputStream in, OutputStream out) throws
IOException {
int n;
byte[] buf = newbyte[IOTools.BUFSIZE];
if (in == null) {
thrownew NullPointerException("Argument in is null.");
}
if (out == null) {
thrownew NullPointerException("Argument out is null.");
}
n = in.read(buf, 0, IOTools.BUFSIZE);
while (n > 0) {
out.write(buf, 0, n);
n = in.read(buf, 0, IOTools.BUFSIZE);
}
out.flush();
}
}