0

ここで助けが必要です。
int を 16 進数に変更した後、byte に変更してファイルに書き込んでみました。
しかし、ファイルは、ビルドした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();
    }
}

NameText.getText() は間違いなくそこにあり、 CodesBox.getText() も間違いなく正しいです。

この画像を見る
ご覧のとおり、生成されたファイルを 16 進エディターで開いたときに得られるものです。しかし、私は代わりにこれが欲しいでしょう。
画像
これを修正する方法を教えてください。
出力ファイルがスペースを含む「vPTP」であることはわかっています。スペースが必要です。ありがとう

4

2 に答える 2

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();
    }
}
于 2012-12-18T09:24:00.607 に答える
0

FileWriterまたは のいずれかを使用してくださいPrintWriter

例えば:

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);
   }
}
于 2012-12-18T08:01:06.467 に答える