gpt4 book ai didi

java - 从 OutputStream 创建文件

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:37 25 4
gpt4 key购买 nike

我在创建文件时遇到这个问题,但这是在创建空文件。

我用的是Dropbox的一个API,Dropbox的代码运行的很好,但是我不知道我做的不好。我为我的应用程序使用了 2º 和 3º 代码,运行良好。

这是分层操作的。我正在为功能发送 outputStream。但这是空的。

我正在使用 outputStream,因为我需要它与 outputstream 一起运行。

1º代码(类测试||调用):

File tempFile=new File("C:\\PRUEBAS_TFG\\cloud.png"); if ( ! tempFile.exists() ) { tempFile.createNewFile(); } 
File file = new File("C:\\PRUEBAS_TFG\\cloud.png");
OutputStream outputStream = new FileOutputStream(file);
catmanager.downloadFilesToItem(catmanager.getAllListCatalog().get(0), catmanager.getAllListCatalog().get(0).getItems().get(2), listFile, outputStream);
outputStream.close();

2º 代码(类 catmanager || 1ºbody):

public void downloadFilesToItem(Catalog catalog, Item item, List<String> files, OutputStream output){
try{
String fsPath;
fsPath = pathCatalog(catalog);
getFSManager().changeDirectoryConfigNPath(fsPath+"/"+item.getName()+"_item");
for(int i = 0;i<files.size();i++){
getFSManager().downloadFile(files.get(i), output);
}
}catch(Exception e){
e.printStackTrace();
}
}

3º代码(类 FSManager || 2º主体)

public void downloadFile(String fileName, OutputStream output) throws IOException{//Aqui deveria Buscar el Fichero Funciona por que da la casualidad que esta el fichero en la primera nube 
/** Cogemos la lista de FS del usuario */
List<IFileSystem> aux = getFileSystemsUser();

for(int i = 0; i < aux.size();i++){
/** Se realiza la Funcionalidad del metodo*/
System.out.println(aux.get(i).toString());
try{
aux.get(i).downloadFile(_listPath.get(i)+"/"+fileName, output);
i = aux.size()+1;
}catch(IOException e) {

}
}
}

4º代码(Class aux Dropbox || API Dropbox):

public void downloadFile(String fileName, OutputStream aux) throws IOException{
try{
getDbxClient().getFile(fileName, null, aux);
}catch(IOException e){
throw e;
}catch(DbxException u){
throw new IOException(u.getCause());
}
}

提前致谢。

最佳答案

您正在使用一个 FileOutputStream 来下载文件列表。您是否希望合并文件(在一个图像中)或类似的东西?

如果不是预期的,我当然不会将 FileOutputStream 作为连续调用 (2,3,4) 的输入参数传递,而是传递 File 的实例代表文件夹。在最后一个方法 (4) 中,为该文件夹中的文件创建(并在下载后关闭)一个新的 FileOutputStream。有点像

public void downloadFile(String fileName, File folder) throws IOException{
OutputStream outputStream = new FileOutputStream(new File(folder, filename));
try{
getDbxClient().getFile(fileName, null, outputStream );
}catch(IOException e){
throw e;
}catch(DbxException u){
throw new IOException(u.getCause());
}finally {
outputstream.close();
}
}

关于java - 从 OutputStream 创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38872337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com