我从文件中读取ansiii字符串及图像数据,然后重写入新文件,新文件没有扩展名,这是为什么?
大体代码如下:
String[] nStr;
BufferedImage nBuf;
RandomAccessFile nRa = new RandomAccessFile(test.pak,"r");
byte[] nBye = new byte[8];for(int i = 0:i < 5;i++){
nRa.read(nBye);
nStr[i] = new String(nBye,"iso8559-1");
图像数据获取过程略过
ImageIO.write(nBuf,"PNG",new File(nStr[i] + ".png"));
}

解决方案 »

  1.   

    不是java 的问题。如果是windows 操作系统,看看是否隐藏已知文件类型的扩展名上打勾了。
      

  2.   

    试过勾选显示隐藏文件还是一样,Windows显示未知文件
      

  3.   

    那明显是你系统问题,无法识别png文件类型。你去安装一个编辑图片的应用photoshop ,或者美图看看试试,还不行就只能重装系统了。下面是我在本机测试的程序。
    public class test7 { public static void main(String[] args) {
    // TODO Auto-generated method stub
     BufferedImage image = null;
     File f = new File("D:\\111.jpg");
            try {
                image = ImageIO.read(f);
                String str="d:\\out";
                ImageIO.write(image, "PNG",new File(str+".png"));
                ImageIO.write(image, "JPG",new File(str+".jpg"));
                ImageIO.write(image, "GIF",new File(str+".gif"));         } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("成功写入D盘"); }}
    下图是结果,一切正常。
      

  4.   

    这是我的(红色是我已生成的文件,没有扩展名,另外png,gif,jpg都能正常显示扩展名并且能正常打开)
      

  5.   

    png,jpg都试过了,没用