【问题标题】:Getting IOException, cant find any reason得到 IOException,找不到任何原因
【发布时间】:2011-08-23 20:43:47
【问题描述】:

我尝试读取特定像素的 rgb,但遇到 IOException。
我找不到任何共鸣,所以我尝试从该站点运行程序 link 但我仍然收到 IOException。
那么这可能是因为 JRE 还是我的 IDE 是 Eclipse?

import java.io.*;
import java.awt.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;

public class GetPixelColor
{
  public static void main(String args[]) throws IOException{
  File file= new File("rockface.jpg");
  BufferedImage image = ImageIO.read(file);
  // Getting pixel color by position x=100 and y=40 
  int clr=  image.getRGB(100,40); 
  int  red   = (clr & 0x00ff0000) >> 16;
  int  green = (clr & 0x0000ff00) >> 8;
  int  blue  =  clr & 0x000000ff;
  System.out.println("Red Color value = "+ red);
  System.out.println("Green Color value = "+ green);
  System.out.println("Blue Color value = "+ blue);
  }
}

【问题讨论】:

  • 零代码或上下文没有人可以提供帮助。
  • 给我们您的代码和错误,我们可以提供帮助,否则您可能会收到 IOException。

标签: java path ioexception


【解决方案1】:

根据 JavaDoc,这(可能)是抛出 IOException 的方法:

ImageIO#read(File f)

来自文档:

投掷:

IllegalArgumentException - 如果输入为空。

IOException - 如果在读取过程中发生错误。

这很可能是因为找不到您指定的File。尝试将其移至类路径或项目根目录。

【讨论】:

    【解决方案2】:

    这可能是因为您链接的程序引用了您路径中没有的图像。

    在 File 构造函数后添加以下行以检查您要查找的文件是否存在:

    File file= new File("rockface.jpg");
    if (file.exists()){
       //OK
    }else{
       //you should have I/O Exception when the code reach ImageIO.read(file);
    
    }
    

    【讨论】:

      【解决方案3】:

      我不记得确切的细节,但我听说其他人询问 Eclipse 的 IOExceptions。

      可能是您的文件不在项目的运行目录中。我不记得 eclipse 是如何设置的,但是尝试将文件移动到包含 .class 文件的任何文件夹中,或者只是使用文件的位置。

      【讨论】:

        【解决方案4】:

        一种解决方案是指定绝对路径(假设您使用的是 c:....\etc.. 的窗口),否则您将不得不使用相对路径。
        要知道您的应用程序在哪个文件夹中搜索,您可以使用:

        System.getProperty("user.dir");

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-17
          • 2019-12-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-24
          相关资源
          最近更新 更多