
com.ochafik.io.IOUtils Maven / Gradle / Ivy
/*
Copyright (c) 2009-2011 Olivier Chafik, All Rights Reserved
This file is part of JNAerator (http://jnaerator.googlecode.com/).
JNAerator is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
JNAerator is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with JNAerator. If not, see .
*/
package com.ochafik.io;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
import com.ochafik.util.progress.ProgressModel;
public class IOUtils {
public static final long readWrite(InputStream in, OutputStream out) throws IOException {
byte[] b=new byte[4096];
int len;
long total=0;
while ((len=in.read(b))>0) {
out.write(b, 0, len);
total+=len;
}
return total;
}
public static final long readWrite(InputStream in, OutputStream out, int maxLen) throws IOException {
int bLen = 4096;
byte[] b=new byte[bLen];
int len;
long total=0;
int allowed = bLen <= maxLen ? bLen : maxLen;
while (allowed > 0 && (len=in.read(b, 0, allowed)) > 0) {
out.write(b, 0, len);
total+=len;
maxLen -= len;
allowed = bLen <= maxLen ? bLen : maxLen;
}
return total;
}
public static final long readWrite(InputStream in, OutputStream out, ProgressModel progressModel) throws IOException {
byte[] b=new byte[1024];
int len;
long total=0;
while ((len=in.read(b))>0) {
out.write(b, 0, len);
total+=len;
progressModel.addProgress(len);
}
return total;
}
public static void readWrite(Reader in, Writer out) throws IOException {
char[] b = new char[1024];
int len;
long total=0;
while ((len = in.read(b))>0) {
out.write(b, 0, len);
total+=len;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy