Java 类org.apache.commons.io.input.TeeInputStream 实例源码
项目:wisp
文件:RequestWrapper.java
@Override
public ServletInputStream getInputStream() throws IOException {
return new ServletInputStream() {
@Override
public boolean isFinished() {
return false;
}
@Override
public boolean isReady() {
return false;
}
@Override
public void setReadListener(ReadListener readListener) {
}
private TeeInputStream tee = new TeeInputStream(RequestWrapper.super.getInputStream(), bos);
@Override
public int read() throws IOException {
return tee.read();
}
};
}
项目:summer
文件:RequestWrapper.java
@Override
public ServletInputStream getInputStream() throws IOException {
return new ServletInputStream() {
@Override
public boolean isFinished() {
return false;
}
@Override
public boolean isReady() {
return false;
}
@Override
public void setReadListener(ReadListener readListener) {
}
private TeeInputStream tee = new TeeInputStream(RequestWrapper.super.getInputStream(), bos, true);
@Override
public int read() throws IOException {
return tee.read();
}
};
}
项目:nifi-minifi
文件:FileChangeIngestor.java
@Override
public void run() {
logger.debug("Checking for a change");
if (targetChanged()) {
logger.debug("Target changed, checking if it's different than current flow.");
try (FileInputStream configFile = new FileInputStream(configFilePath.toFile());
ByteArrayOutputStream pipedOutputStream = new ByteArrayOutputStream();
TeeInputStream teeInputStream = new TeeInputStream(configFile, pipedOutputStream)) {
if (differentiator.isNew(teeInputStream)) {
logger.debug("New change, notifying listener");
// Fill the byteArrayOutputStream with the rest of the request data
while (teeInputStream.available() != 0) {
teeInputStream.read();
}
ByteBuffer newConfig = ByteBuffer.wrap(pipedOutputStream.toByteArray());
ByteBuffer readOnlyNewConfig = newConfig.asReadOnlyBuffer();
configurationChangeNotifier.notifyListeners(readOnlyNewConfig);
logger.debug("Listeners notified");
}
} catch (Exception e) {
logger.error("Could not successfully notify listeners.", e);
}
}
}
项目:mycore
文件:MCRDefaultConfigurationLoader.java
private InputStream getConfigInputStream() throws IOException {
MCRConfigurationInputStream configurationInputStream = MCRConfigurationInputStream
.getMyCoRePropertiesInstance();
File configFile = MCRConfigurationDir.getConfigFile("mycore.active.properties");
if (configFile != null) {
FileOutputStream fout = new FileOutputStream(configFile);
return new TeeInputStream(configurationInputStream, fout, true);
}
return configurationInputStream;
}
项目:TomboloDigitalConnector
文件:DownloadUtils.java
public InputStream fetchInputStream(URL url, String prefix, String suffix) throws IOException {
createCacheDir(prefix);
File localDatasourceFile = urlToLocalFile(url, prefix, suffix);
log.info("Fetching local file: {}", localDatasourceFile.getCanonicalPath());
if (!localDatasourceFile.exists()){
log.info("Local file not found: {} \nDownloading external resource: {}",
localDatasourceFile.getCanonicalPath(), url.toString());
URLConnection connection = url.openConnection();
if (suffix.equals(".json")) connection.setRequestProperty("Accept", "application/json");
return new TeeInputStream(connection.getInputStream(), new FileOutputStream(localDatasourceFile));
} else {
return new FileInputStream(localDatasourceFile);
}
}
项目:MyVidCoRe
文件:ConfigurationLoader.java
private InputStream getConfigInputStream() throws IOException {
ConfigurationInputStream configurationInputStream = ConfigurationInputStream.getConfigPropertiesInstance();
File configFile = ConfigurationDir.getConfigFile("config.active.properties");
if (configFile != null) {
FileOutputStream fout = new FileOutputStream(configFile);
TeeInputStream tin = new TeeInputStream(configurationInputStream, fout, true);
return tin;
}
return configurationInputStream;
}
项目:awake-file
文件:ApiInputStreamDownloader.java
/**
* Creates an input stream that maps the remote file chunk
*
* @param remoteSession
* the current file session in use
* @param fileChunk
* the fileChunk to store the downlad in
* @param remoteFile
* the remote file name with path
* @return the input stream that maps the remote file
* @throws UnknownHostException
* @throws ConnectException
* @throws RemoteException
* @throws IOException
* @throws InvalidLoginException
* @throws FileNotFoundException
*/
public InputStream downloadOneChunk(
File fileChunk, String remoteFile, long chunkLength) throws UnknownHostException,
ConnectException, RemoteException, IOException,
InvalidLoginException, FileNotFoundException {
// debug("downloadFile Begin");
// Prepare the request parameters
List<SimpleNameValuePair> requestParams = new Vector<SimpleNameValuePair>();
requestParams.add(new SimpleNameValuePair(Parameter.ACTION,
Action.DOWNLOAD_FILE_ACTION));
requestParams.add(new SimpleNameValuePair(Parameter.USERNAME,
username));
requestParams.add(new SimpleNameValuePair(Parameter.TOKEN, authenticationToken));
requestParams
.add(new SimpleNameValuePair(Parameter.FILENAME, remoteFile));
requestParams.add(new SimpleNameValuePair(Parameter.CHUNKLENGTH, ""
+ chunkLength));
InputStream in = httpTransfer.getInputStream(requestParams);
// If there is a non null FileChunk, save content of stream for reuse
// in case of download interruptions
if (fileChunk != null) {
OutputStream out = new BufferedOutputStream(new FileOutputStream(
fileChunk));
TeeInputStream teeIn = new TeeInputStream(in, out, true);
return teeIn;
} else {
return in;
}
}
项目:bouncestorage
文件:WriteBackPolicy.java
private Blob pipeBlobAndReturn(String container, Blob blob) throws IOException {
String name = blob.getMetadata().getName();
logger.debug("piping {} from {} to {}", name, getDestStoreName(), getSourceStoreName());
PipedInputStream pipeIn = new PipedInputStream();
PipedOutputStream pipeOut = new PipedOutputStream(pipeIn);
Payload blobPayload = blob.getPayload();
MutableContentMetadata contentMetadata = blob.getMetadata().getContentMetadata();
Blob retBlob = new BlobImpl(replaceSystemMetadata(blob.getMetadata()));
retBlob.setPayload(pipeIn);
retBlob.setAllHeaders(blob.getAllHeaders());
TeeInputStream tee = new TeeInputStream(blobPayload.openStream(), pipeOut, true);
retBlob.getMetadata().setContentMetadata(contentMetadata);
app.executeBackgroundTask(() -> {
try {
logger.debug("copying {} to tee stream", name);
return Utils.copyBlob(getDestination(), getSource(), container, blob, tee);
} catch (RuntimeException e) {
logger.error("copying " + name + " to tee stream failed", e);
throw e;
} finally {
tee.close();
}
});
return retBlob;
}
项目:BikeMan
文件:RequestWrapper.java
@Override
public ServletInputStream getInputStream() throws IOException {
return new ServletInputStream() {
private TeeInputStream tee = new TeeInputStream(RequestWrapper.super.getInputStream(), bos);
@Override
public int read() throws IOException {
return tee.read();
}
@Override
public boolean isFinished() {
// Auto-generated method stub
return false;
}
@Override
public boolean isReady() {
// Auto-generated method stub
return false;
}
@Override
public void setReadListener(ReadListener listener) {
// Auto-generated method stub
}
};
}
项目:nifi-minifi
文件:RestChangeIngestor.java
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
logRequest(request);
baseRequest.setHandled(true);
if (POST.equals(request.getMethod())) {
int statusCode;
String responseText;
try (ByteArrayOutputStream pipedOutputStream = new ByteArrayOutputStream();
TeeInputStream teeInputStream = new TeeInputStream(request.getInputStream(), pipedOutputStream)) {
if (differentiator.isNew(teeInputStream)) {
// Fill the pipedOutputStream with the rest of the request data
while (teeInputStream.available() != 0) {
teeInputStream.read();
}
ByteBuffer newConfig = ByteBuffer.wrap(pipedOutputStream.toByteArray());
ByteBuffer readOnlyNewConfig = newConfig.asReadOnlyBuffer();
Collection<ListenerHandleResult> listenerHandleResults = configurationChangeNotifier.notifyListeners(readOnlyNewConfig);
statusCode = 200;
for (ListenerHandleResult result : listenerHandleResults) {
if (!result.succeeded()) {
statusCode = 500;
break;
}
}
responseText = getPostText(listenerHandleResults);
} else {
statusCode = 409;
responseText = "Request received but instance is already running this config.";
}
writeOutput(response, responseText, statusCode);
}
} else if (GET.equals(request.getMethod())) {
writeOutput(response, GET_TEXT, 200);
} else {
writeOutput(response, OTHER_TEXT, 404);
}
}
项目:firefly
文件:AnyFileUpload.java
protected void processRequest(HttpServletRequest req, HttpServletResponse res) throws Exception {
String dest = req.getParameter(DEST_PARAM);
String preload = req.getParameter(PRELOAD_PARAM);
String overrideCacheKey= req.getParameter(CACHE_KEY);
String fileType= req.getParameter(FILE_TYPE);
if (! ServletFileUpload.isMultipartContent(req)) {
sendReturnMsg(res, 400, "Is not a Multipart request. Request rejected.", "");
}
StopWatch.getInstance().start("Upload File");
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter = upload.getItemIterator(req);
while (iter.hasNext()) {
FileItemStream item = iter.next();
if (!item.isFormField()) {
String fileName = item.getName();
InputStream inStream = new BufferedInputStream(item.openStream(), IpacTableUtil.FILE_IO_BUFFER_SIZE);
String ext = resolveExt(fileName);
FileType fType = resolveType(fileType, ext, item.getContentType());
File destDir = resolveDestDir(dest, fType);
boolean doPreload = resolvePreload(preload, fType);
File uf = File.createTempFile("upload_", ext, destDir);
String rPathInfo = ServerContext.replaceWithPrefix(uf);
UploadFileInfo fi= new UploadFileInfo(rPathInfo,uf,fileName,item.getContentType());
String fileCacheKey= overrideCacheKey!=null ? overrideCacheKey : rPathInfo;
UserCache.getInstance().put(new StringKey(fileCacheKey), fi);
if (doPreload && fType == FileType.FITS) {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(uf), IpacTableUtil.FILE_IO_BUFFER_SIZE);
TeeInputStream tee = new TeeInputStream(inStream, bos);
try {
final Fits fits = new Fits(tee);
FitsRead[] frAry = FitsRead.createFitsReadArray(fits);
FitsCacher.addFitsReadToCache(uf, frAry);
} finally {
FileUtil.silentClose(bos);
FileUtil.silentClose(tee);
}
} else {
FileUtil.writeToFile(inStream, uf);
}
sendReturnMsg(res, 200, null, fileCacheKey);
Counters.getInstance().increment(Counters.Category.Upload, fi.getContentType());
return;
}
}
StopWatch.getInstance().printLog("Upload File");
}
项目:Android-Telnet-Client
文件:TelnetClient.java
private InputStreamReader spawnSpy(InputStream in, PipedOutputStream pipeout) throws InterruptedException {
return new InputStreamReader(new TeeInputStream(in,pipeout));
}