2012-12-18 46 views
0

我需要一些幫助。
我將int更改爲一個十六進制,然後將其更改爲字節並嘗試將其寫入文件。
但是該文件不會以我構建的jar文件的形式出現在目錄中。java打入文件,文件不顯示,使用字節

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

NameText.getText()肯定是有 和CodesBox.getText()也絕對正確的。

see this image
正如你所看到的,這是當我在十六進制編輯器中打開生成的文件時得到的結果。 但我想要這個。
IMG
我可以知道如何解決這個問題嗎?
我知道輸出文件是「vPTP」與空間,我需要的空間,謝謝

+1

你要把什麼東西改成十六進制?我只看到'parseInt',它將文本更改爲二進制。 –

+0

「文件沒有顯示」,這是否意味着該文件不包含您的預期或者根本找不到該文件?你有沒有其他的錯誤(可能來自Integer.parseInt)? –

+0

不,該文件沒有出現在目錄中作爲程序 – junyi00

回答

0

請使用或者FileWriterPrintWriter

例如:

modFile = new File(NameText.getText() + ".mod"); 
FileWriter writer = null; 
if(!modFile.exists()){ 
    try { 
     modFile.createNewFile(); 
     writer = new FileWriter(ModFile); 
     System.out.println("Mod file has been created to the current directory"); 
     writer.write(CodesBox.getText()); 
    } catch (IOException ex) { 
     Logger.getLogger(ModMakerGui.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 
+0

我想以字節寫他們雖然 – junyi00

+0

答案單獨更新。試試看。 –

0

試試這個,如果你使用FileOutputStream中以及要寫入的字節。

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

try { 
    writer = new FileOutputStream(ModFile); 
    writer.write(CodesBox.getText().getBytes(),0,CodesBox.getText().getBytes().length); 

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

對不起,它仍然不能解決我的問題。我正在改變我的主要職位,使其更清晰 – junyi00