0

数値を含むファイルを生成するプログラムを作成しましたが、プログラムは作成したファイルに何も入力していません!

これはコードです:

     private void OpenMenuActionPerformed(java.awt.event.ActionEvent evt) {                                         
    ModFile=new File(NameText.getText() + ".mod");
    FileWriter writer = null;
    try {
        writer = new FileWriter(ModFile);
    } catch (IOException ex) {
        Logger.getLogger(ModMakerGui.class.getName()).log(Level.SEVERE, null, ex);
    }
   if(!ModFile.exists()){
   try {
   ModFile.createNewFile();
   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);
       }
     }     
   }                      

ランダム ファイルを作成すると、開いても何も表示されません。助けてください助けてくれて
ありがとうAmirですが、FileOutputStreamとDataOutputStreamを使用する必要があることに気付きました...
だから、同じ問題が発生したため、もう一度助けが必要です:(

 File ModFile =new File(NameText.getText() + ".mod");
try {
    FileOutputStream fos = new FileOutputStream(ModFile);
    DataOutputStream dos = new DataOutputStream(fos);
    int i = Integer.parseInt(CodesBox.getText());
    dos.writeInt(i);
        // and other processing 
} catch (IOException ex) {
    Logger.getLogger(ModMakerGui.class.getName()).log(Level.SEVERE, null, ex);
}finally{
    try{
         dos.close();
    } catch(IOException e) {
        e.printStackTrace();
    }
}

NetBeans は、シンボル dos が (dos.close();) に見つからないと述べました。

ここでまた助けてください

4

1 に答える 1

0
  • ファイル名が に存在することを確認する必要がありますNameText.getText()
  • ファイルが存在しない場合は、ファイルを作成する必要はありません。FileWriter が自動的に作成します。
  • 処理後にファイルを閉じる必要があります

    private void OpenMenuActionPerformed(java.awt.event.ActionEvent evt) {

        //check before file name is nt null
        File ModFile =new File("somefile" + ".mod");
        FileWriter writer = null;
    
        try {
            writer = new FileWriter(ModFile);
            writer.write("test..................");
                // and other processing 
        } catch (IOException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }finally{
            try {
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }                    
    

++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++FileOutputStreamバイト配列を使用して書き込むには、次のコードに従います

private static void OpenMenuActionPerformed(java.awt.event.ActionEvent evt) {  

//check before file name is nt null
    File ModFile =new File("somefile" + ".mod");
    FileOutputStream writer = null;

    String toProcess = "00D0C0DE00D0C0DE F000000000000000";

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

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

}
于 2012-12-12T09:05:47.323 に答える