2012-12-19 130 views
0

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

这里是我当前的代码:

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(); 
    } 
} 

请帮帮忙!

+1

“ModFile”的路径是什么,你的可执行文件位于何处? – jlordo

+0

1.这段代码真的被执行了吗? 2.如果它正在执行,那么当前的工作目录是什么? –

+0

您可以使用['File.getAbsolutePath()']检查文件的实际创建位置(http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html# getAbsolutePath%28%29)。 – JimmyB

回答

0

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

+0

电影剪辑?我不认为创建的文件是.mov文件,但是.mod文件。 NameText和CodesBox绝对没有错误,NameText是TextField,CodesBox是文本区 – junyi00

+0

@ junyi00尽管该文件看起来像一个影片剪辑。它可以通过另一个java文件读取。我使用这段代码读取文件。它的阅读很好。 'FileInputStream fis = new FileInputStream(“abc.mod”); \t \t int i; \t \t而(第(i = fis.read())!= -1){ \t \t \t \t的System.out.println( “我:” + I); '您正在将输入文本转换为字节。如果文本更多,我认为你应该更好地尝试'byte []',因为单字节变量有限制。或者,如果您可以提供您正在尝试的数据,可能我可以帮助您更多。 – ramesh

+0

我会尝试使用byte []然后,谢谢你的想法 – junyi00