有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java FileNotFoundException(文件太大)

我在尝试下载文件时遇到此异常

Caused by: java.io.FileNotFoundException: /repository/PWWVFSYWDW0STLHYVEEKHMYBXZTTETGROCQ4FGdsadadaXR1407709207964905350810526.jpg (File too large)
at java.io.FileOutputStream.open(Native Method)

很明显,该文件存在。除此之外,同样的程序在我的电脑上正常工作,但是服务器有一个问题,那就是Unix

你知道这是什么原因吗


共 (6) 个答案

  1. # 1 楼答案

    我在尝试将文件写入RedHat服务器上的目录时收到此消息,该服务器中的文件数已达到最大值。我将文件细分为子目录,错误不再出现

  2. # 2 楼答案

    不管JVM错误输出是什么(这可能会产生误导或有点偏离),您可能需要检查Unix进程是否有足够的打开文件句柄。耗尽进程文件句柄可能会导致各种与FS相关的错误代码

  3. # 3 楼答案

    我认为这是一个模糊的错误,实际上来自操作系统级别或JVM的本机代码实现。如果使用perrorC library方法呈现EFBIG错误号,则会收到错误消息“File too large”

    现在通常情况下,这不应该发生。根据UNIX/Linux手册条目,EFBIG的各种open库调用不应失败

    <>但是,我看到了各种错误报告,暗示^ {< CD4>}(ETCITEA)可能会在某些文件系统上失败,和/或当A/C/C++程序被构建为具有64位文件大小支持的禁用时。p>

    那么这意味着什么呢

    目前尚不清楚,但我怀疑这意味着你:

    • 使用脆弱的Java实现,

    • 运行一个古怪的UNIX/Linux版本,或

    • 您试图使用服务器操作系统不支持的某种类型的文件系统。(可能是在FUSE文件系统上?)

    一个可能相关的Java错误:

  4. # 4 楼答案

    所以,问题解决了。问题是,磁盘已满,因此流需要很长时间, 我清理了磁盘之后就没有问题了

  5. # 5 楼答案

    problem: 
    java.io.FileNotFoundException: /sent/plain/2009/04/Sterling_AS2_to_edt_AS2_Sterling_SJMVM00 A.20090429115945.All_to_cil_QM_214.GS13173.cgs_to_cil.PR120301900.node (File too large)
    

    文件名不太长的文件将成功写入同一目录

    solution:
    Reduce the assign filename length or remove older archived files with the longer filenames from that directory and try again.
    
  6. # 6 楼答案

    POSIX(以及Unix)系统可以在路径上施加最大长度(从File.getPath()或路径的组件(最后一个可以通过File.getName())获得)。您可能会看到这个问题,因为文件名很长

    在这种情况下,文件^{}操作系统调用将以ENAMETOOLONGerror code失败

    但是,“文件太大”消息通常与EFBIG错误代码关联。这更有可能是由^{}系统调用引起的:

    An attempt was made to write a file that exceeds the implementation-dependent maximum file size or the process' file size limit.

    也许文件正在被打开以进行追加,而文件末尾隐含的^{}给出了EFBIG错误