2017-06-18 6 views
0

ルートに作成されているフォルダは、これでいいです。この方法でもファイルとフォルダが作成されますが、フォルダに作成する方法はわかりません。ここでフォルダを作成してtxtファイルを作成して登録メソッド(Java)を作成する

は、私がこれまで持っているものです。

public void registration(TextField user, PasswordField pass){ 

    File admin = new File("adminstrator"); 

    if(!admin.exists()){ 
    admin.mkdir(); 
    } 

    //add some way to save file to admin folder 

    try (BufferedWriter bw = new BufferedWriter(new FileWriter("USER_PASS.txt", true))){ 

     bw.write(user.getText()); 
     bw.newLine(); 
     bw.write(pass.getText()); 
     bw.newLine(); 

     bw.close(); 
    } 
    catch(IOException e){ 
     e.printStackTrace(); 
    } 
} 

答えて

0

あなたはその

try (BufferedWriter bw = new BufferedWriter(new FileWriter(admin + "\\USER_PASS.txt", true))){ 

    bw.write(user.getText()); 
    bw.newLine(); 
    bw.write(pass.getText()); 
    bw.newLine(); 
    bw.close(); 
} 
catch(IOException e){ 
    e.printStackTrace(); 
} 
0
  1. のようなファイル名の前にパスとしてadmin入れている、私はTextFieldなどのAWTコンポーネントを使用しないように優れていると思いますあなたのプログラムで。 JTextFieldやJPasswordFieldのように軽量のSwingコンポーネントを代わりに使用します。
  2. バックスラッシュの代わりにFile.separatorを使用すると、プログラムを別のオペレーティング環境に移植した場合でもプログラムが正しく動作することが保証されます。
  3. JPasswordFieldには、文字配列を返す.getPassword()メソッドがあります。書き込みメソッドのBufferedWriterで直接使用できます。 Stringに変換することもできますps = new String(pass.getPassword());.
  4. IOExceptionが発生した場合、bw.close()メソッドの呼び出しをスキップしてファイルが開かれたままになるので、finallyブロックでファイルを閉じる方が良いです。
  5. e.printStackTrace()はすばやく汚れた解決策です。 stderrに書き込むために出力を使用しないでください。出力が失われる可能性があります。創造の間に神がどのようにしたのかを知るためにGod's Perfect Exceptionを読んでください。ロギングフレームワークを使用します。 slf4jは良い選択です。

    public void registration(JTextField user, JPasswordField pass) { // 1 
        File admin = new File("adminstrator"); 
        BufferedWriter bw = null; 
        if (!admin.exists()) { 
         admin.mkdir(); 
        } 
    
        try { 
         bw = new BufferedWriter(new FileWriter(admin + File.separator + "USER_PASS.txt", true)); // 2 
         bw.write(user.getText()); 
         bw.newLine(); 
         bw.write(pass.getPassword()); // 3   
         bw.newLine(); 
        } catch (IOException e) { 
         e.printStackTrace(); // 5 
        } finally { // 4 
         try { 
          if (bw != null) { 
           bw.close(); 
          } 
         } catch (IOException e) { 
          e.printStackTrace(); // 5 
         } 
        } 
    } 
    
関連する問題