`
yourgame
  • 浏览: 356852 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

为什么我上传后的文件无法从服务器删除?

    博客分类:
  • J2SE
阅读更多
new ZipOutputStream(new FileOutputStream("c:/abc.txt"));

在操作文件或者流的时候最好不要这么写,因为这么写你无法在finally里面将流最终关闭,所以当您要删除文件的时候就会有IOException,最终导致文件无法删除!
public String compressionFiles() {
        ZipOutputStream zosm = null;
		FileOutputStream fosm = null;
		try {
			fosm = new FileOutputStream("c:/abc.txt");
			zosm = new ZipOutputStream(fosm);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (zosm != null) {
				zosm.close();
			}
			if (fosm != null) {
				fosm.close();
			}
		}
}

这样分开出来写,就可以保证所有的流最后都可以在finally中被正确关闭。


分享到:
评论
6 楼 ylzyd12345 2011-12-30  
一般是先关闭输入流呢,还是先关闭输出流?
5 楼 wolfbrood 2009-02-15  
<div class="quote_title">yourgame 写道</div>
<div class="quote_div">
<pre name="code" class="java">new ZipOutputStream(new FileOutputStream("c:/abc.txt"));</pre>
<br />在操作文件或者流的时候最好不要这么写,因为这么写你无法在finally里面将流最终关闭,所以当您要删除文件的时候就会有IOException,最终导致文件无法删除!<br />
<pre name="code" class="java">public String compressionFiles() {
        ZipOutputStream zosm = null;
FileOutputStream fosm = null;
try {
fosm = new FileOutputStream("c:/abc.txt");
zosm = new ZipOutputStream(fosm);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (zosm != null) {
zosm.close();
}
if (fosm != null) {
fosm.close();
}
}
}
</pre>
<br />这样分开出来写,就可以保证所有的流最后都可以在finally中被正确关闭。<br /><br /><br /></div>
<p>//变成如下</p>
<pre name="code" class="java">if (zosm != null) {
trt {
zosm.close();
} catch(Exception e) {
  //TODO:
}

}
if (fosm != null) {
  try {
fosm.close();
}catch(IOException e) {
  //TODO:
}

}
</pre>
<p> 这样就不会因为zosm异常而没有关闭fosm流。</p>
4 楼 yourgame 2009-02-15  
yourgame 写道

现在是我在网上找的一个解压缩RAR文件的这样处理了也无济于事

一般像流都有 close()方法,如果没有的情况下就 把变量设置为空。
3 楼 yourgame 2009-02-10  
huangleiatay 写道

可以这么理解,ZipOutputStream 不会自动关闭它所包装的流

ZipOutputStream这样处理了以后到没有问题了
现在是我在网上找的一个解压缩RAR文件的这样处理了也无济于事
2 楼 抛出异常的爱 2009-02-10  
用common.io这个包来写有关读文件与写文件的代码.
1 楼 huangleiatay 2009-02-10  
可以这么理解,ZipOutputStream 不会自动关闭它所包装的流

相关推荐

    java上传文件到linux服务器,操作linux服务器上文件,下载linux服务器文件,删除linux服务器文件

    总之,Java结合ganymed-ssh2库,为开发者提供了强大的工具,使他们能够在安全的环境下与Linux服务器进行交互,实现文件的上传、下载、操作和删除,极大地提升了远程管理服务器的效率。在开发过程中,理解这些基本...

    QT5.7ftp客户端包含单文件上传下载及服务器文件删除

    FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,它允许用户从远程服务器上传、下载文件或删除服务器上的文件。在QT5.7 FTP客户端中,这些功能通过QFtp类实现。QFtp类提供了一系列的信号和槽函数,...

    jsp-解决文件上传后重启Tomcat时文件自动删除问题.docx

    该问题是指在jsp项目中上传文件后,重启Tomcat服务器或清理缓存时,上传的文件会自动删除的问题。 问题分析 在jsp项目中,我们通常使用DefaultServlet来处理文件上传请求。但是,在重启Tomcat服务器或清理缓存时,...

    文件上传下载服务器

    在提供的压缩包文件“hfs”中,可能包含的是一个名为HFS(Hyper-Fast Server)的轻量级文件服务器软件。HFS是一个易于使用的HTTP文件服务器,适用于个人或小型团队分享文件,它具有简单的网页界面,可以快速设置并运行...

    WinForm上传文件到服务器

    ### WinForm上传文件到服务器 #### 知识点概述 在.NET Framework中,Windows Forms(简称WinForms)是一种用于创建Windows桌面应用程序的技术。本篇内容介绍如何使用WinForm实现文件的上传功能,即将本地文件传输...

    Delphi中利用IDFTP删除FTP服务器中的文件及文件夹

    在Delphi编程环境中,IDFTP组件是用于执行FTP(File Transfer Protocol)操作的强大工具,它提供了丰富的功能,包括上传、下载、重命名以及删除FTP服务器上的文件和目录。本篇文章将详细阐述如何利用IDFTP组件在...

    下载服务器文件到本地,并删除已下载的服务器文件

    在IT行业中,下载服务器文件到本地以及在下载后删除服务器上的源文件是一项常见的操作,尤其在数据迁移、备份或更新场景下。以下是一些相关的知识点: 1. **FTP(File Transfer Protocol)**:FTP是最传统的文件...

    Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置

    在使用Bootstrap fileinput组件进行文件上传和管理时,我们可能会遇到需要在文件上传成功后同步删除服务器上旧文件的情况。本文将详细介绍如何配置Bootstrap fileinput以实现在上传新文件并移除文件预览时,触发...

    C#FTP操作:上传、下载、在服务器上创建文件夹、删除服务器上的文件

    本篇将详细介绍如何使用C#进行FTP操作,包括上传文件、下载文件、在服务器上创建文件夹以及删除服务器上的文件。 首先,进行FTP操作需要使用到System.Net命名空间中的FtpWebRequest和FtpWebResponse类。以下是一些...

    python3写的简单本地文件上传服务器实例

    好吧我随口说的,反正因为各种原因(其实到底是啥我也不知道),简单的学习了下python,然后写了一个上传文件上服务器的小玩具练手。 大概功能是这样: 1、获取本地文件列表(包括文件夹) 2、检查服务器上是否存在...

    java实现文件上传到服务器

    在文件成功存储到数据库后,可能需要从服务器上删除临时存储的文件,以释放磁盘空间。可以添加一个方法来完成这一任务: ```java public void deleteFile(File file) { if (file.delete()) { System.out....

    java 监听本地文件自动上传服务器

    结合这两个知识点,当文件夹中的文件发生变化时,你可以调用`FileUploader.uploadFile`方法将新文件或修改后的文件上传到服务器。为了实现完全自动化,你可能还需要处理错误和异常,确保在上传过程中保持文件同步的...

    tomcat文件上传下载、删除

    在IT行业中,Tomcat作为一款广泛应用的开源Java Servlet容器,经常需要处理文件的上传、下载和删除等操作。本文将详细讲解如何在Tomcat环境中进行这些操作,以及解决可能出现的问题。 首先,我们要理解Tomcat在文件...

    thinkPHP删除单个文件

    2. **删除记录**:找到对应的数据库记录后,可以使用`delete()`方法将其从数据库中删除,如`$fileModel-&gt;delete();`。这样确保了数据库中的文件信息与实际文件状态保持一致。 3. **事务处理**:为了保证数据一致性,...

    asp.net上传、读出、删除文件

    在ASP.NET中,文件操作是常见的任务,包括文件的上传、读取和删除。这些功能在网站应用中尤其重要,例如用户需要上传个人照片、下载文档或者清除不再需要的文件。接下来,我们将深入探讨如何在ASP.NET环境中实现这些...

    JSP+Servlet实现文件上传到服务器功能

    本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao、service、servlet 这三层是主要的结构,类似 MVC ...

    windows脚本SFTP上传文件至备份服务器方案

    本方案旨在通过编写Windows批处理脚本,实现对特定文件夹内的文件进行自动归档、压缩,并通过SFTP方式将压缩后的文件上传到远程的Linux备份服务器上。这种方式不仅能够提高数据传输的安全性,还能够减少人工干预,...

    使用Java向服务器上传文件压缩包并实现解压缩

    上传完成后,可能需要在服务器上解压缩这个文件。Java的标准库`java.util.zip`提供了`ZipInputStream`和`ZipEntry`类来处理ZIP格式的压缩包。通过SFTP连接到服务器,下载压缩包到本地,然后使用这些类进行解压缩: ...

    swfupload+ajax实现多文件上传下载删除并将上传文件上传到数据库

    接下来,文件上传到服务器后,我们需要将其信息存储到数据库。通常,我们会创建一个包含文件名、文件类型、文件大小、上传时间等信息的表。当文件上传成功,我们通过Ajax将这些元数据发送到服务器,然后在数据库中...

    JAVA代码实现远程操作服务器文件

    该功能可以实现远程服务器文件的上传、下载、复制、移动、删除等操作。 description: 该实现使用了SVNKit库和Trilead SSH2库来实现远程服务器文件的操作。SVNKit库提供了对svn repository的访问和操作,而Trilead ...

Global site tag (gtag.js) - Google Analytics