【问题标题】:FileOutputStream failing to write into a file or produce filesFileOutputStream 无法写入文件或生成文件
【发布时间】:2012-12-19 11:10:37
【问题描述】:

我需要一些帮助。
我正在尝试使用 FileOutputStream 将字节写入文件...
但是该文件没有作为我构建的jar文件出现在目录中。
或者如果我尝试其他方式,它不会向文件中写入任何内容,甚至刷新文件。

这是我当前的代码:

 File ModFile =new File(NameText.getText() + ".mod");
FileOutputStream writer = null;

String toProcess = CodesBox.getText();
int i = Integer.parseInt(CodesBox.getText());
byte codes = (byte) i;  

try {
    writer = new FileOutputStream(ModFile);
    writer.write(codes);

} catch (IOException ex) {
    Logger.getLogger(ModMakerGui.class.getName()).log(Level.SEVERE, null, ex);
}finally{
    try {
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

请帮忙!

【问题讨论】:

  • ModFile 的路径是什么,你的可执行文件在哪里?
  • 1.这段代码真的被执行了吗? 2.如果正在执行,当前工作目录是什么?
  • 您可以使用File.getAbsolutePath()查看您的文件的实际创建位置。
  • @jlordo ModFile 与创建的 jar 文件位于同一目录。
  • @junyi00 让我更具体一点:System.out.println("'" + ModFile.getAbsolutePath() + "'");print 是什么,你的程序的路径是什么?

标签: java byte output fileoutputstream


【解决方案1】:

@junyi00 对我来说,文件已创建。它显示为电影剪辑。我认为该文件也应该为您创建。试着看看它是在哪里创建的。或者检查您的课程NameTextCodesBox 是否在某处有任何错误。检查生成的文件名是什么。

【讨论】:

  • 电影剪辑?我不认为创建的文件是 .mov 文件,而是 .mod 文件。 NameText 和 CodesBox 肯定没有错误,NameText 是 TextField 而 CodesBox 是 Text Area
  • @junyi00 虽然该文件看起来像一个电影剪辑。它可以通过另一个 java 文件读取。我使用此代码阅读了文件。而且它读得很好。 FileInputStream fis=new FileInputStream("abc.mod"); int i; while((i=fis.read() ) != -1){ System.out.println("i: "+i); } 您正在将输入文本转换为字节。如果文本更多,我认为您最好尝试使用byte[],因为单字节变量有限制。或者,如果您可以提供您正在尝试使用的数据,也许我可以为您提供更多帮助。
猜你喜欢
  • 2019-11-10
  • 2020-07-12
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 2021-08-16
  • 1970-01-01
相关资源
最近更新 更多