当FileOutputStream对象被创建时,由:java.io.FileNotFoundException: /pa



这是一个非常基本的,但它让我挠了我的耳朵4个小时,现在我放弃了。为了提供尽可能多的信息,我可以说这是一个Java web应用程序项目,在ubuntu 11.04下使用zk 5.0.8作为前端+spring+hibernate+maven,并且对basedir的权限设置为777。

尝试文件上传一切似乎都很好,我有信心,我的代码是正确的,它只是不工作。

代码

private boolean saveUploadledFile(Media uploadedMedia, String basedir) {
    String code = codeGenerator.generateContentCode(15);
    String FINAL_DIR_PATH = basedir + "/"+"Racing" + "/" + code;
    String FINAL_FILE_PATH = FINAL_DIR_PATH + "/" + uploadedMedia.getName();
    alert(FINAL_DIR_PATH);
    try {
        File finaldir = new File(FINAL_DIR_PATH);
        //apache commons
        FileUtils.forceMkdir(finaldir);
        alert("Size equals" + uploadedMedia.getByteData().length);
        fout = new FileOutputStream(new File(FINAL_DIR_PATH+"/"+addContentWindow1$txtName.getText()+".jar"));
          //apache commons
          IOUtils.copy(uploadedMedia.getStreamData(), fout);
    } catch (IOException e) {
        throw new RuntimeException(e);
    } catch (Exception e) {
        throw new RuntimeException(e);
    } finally {
        try {
            IOUtils.closeQuietly(in);
            IOUtils.closeQuietly(fout);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    return false;
}

new FileOutputStream总是抛出异常。如果我不能指定要保存在哪里,如何保存文件。什么好主意吗?我故意输出文件的大小以确保存在文件。有人能告诉我吗?谢谢你的阅读

实际的异常是

导致:java.io.FileNotFoundException:/joseph/mbcs/Games/Racing/20314/something .jar(是一个目录)

我可能错了,但这部分代码不是有问题吗?

     if (!finaldir.exists()) {
        if (!finaldir.canWrite())
            finaldir.mkdirs(); // this creates no directory no error
         else
             alert("Cannot write to the directory" );
     }

如果目录不存在,检查是否不能写入,然后创建它,否则输出错误。我认为!是错误的。

可能是你的问题的原因,但也可能不是。

略去:

if(finalfile.canWrite()) {

,因为您刚刚创建了文件并正在向其写入。当OutputStream构造函数写入失败时,您将得到一个错误命名的FileNotFoundException(我认为在Java 7中已重命名)。

另一个提示,一般的工作,如复制可以使用apache-commons (IOUtils, FileUtils),例如:

import org.apache.commons.fileupload.util.Streams;
Streams.copy(in, out, false);

相关内容

  • 没有找到相关文章

最新更新