1

ユーザー入力を読み取ってからファイルに書き込むプログラムがあります。その後、プログラムはそのファイルを読み取り、いくつかの基本的な算術関数を作成します。次に、結果がユーザーの画面に表示されます。その後、そのファイルをクリアしたいと思います。これは、プログラムのキャッシュのようなものであり、永続的な保存は必要ありません。

それはすべてうまく機能し、ファイルをクリアできますが、奇妙な例外が発生しました:

java.io.UnsupportedEncodingException そしてプログラムは停止します。

私のコード:ファイルは次のようになります

2013      Jūnijs              1500.0              80                  125                 293.7               151.25              1055.05             
2013      Jūlijs              1150.0              80                  125                 218.94              112.75              818.31              
2013      Septembris          1550.0              80                  125                 304.38              156.75              1088.87   

ファイルをクリアするには、次のコードを使用します。

 public static void Clear_file() throws IOException{
                 System.out.println("Notīram failu");
                 clear = new Formatter(new FileWriter(user_name()+".txt", true));
                 FileOutputStream erasor = new FileOutputStream(user_name()+".txt");
                 erasor.write((new String().getBytes("")));
                 erasor.close();             
             }

ガイドを読んだところ、次のように書かれています。 指定された文字セットがそのリストにない場合、このエラーがスローされることは確実です。

ファイルには String と double 型のデータしかないため、混乱しています。

この例外のトローを回避するにはどうすればよいですか?

ありがとう :)

4

2 に答える 2

2

new String().getBytes("")

文字セットの名前を指定しなかったため、例外がスローされました。

いずれかを設定してみてください。正しく動作することがわかります。

System.out.println(Arrays.toString(new String("test").getBytes("UTF-8")));

出力:

[116、101、115、116]

于 2013-11-04T18:40:54.063 に答える
1
erasor.write((new String().getBytes("")));

ここでは、空の String オブジェクトに、次のエンコーディングでエンコードされたバイト配列を取得するように要求します""。(ノーネーム)。もちろん、という名前の文字エンコーディングはありません""

ファイルをクリアするには、次のようなものを使用します。

new FileOuputStream(file).close();
于 2013-11-04T18:40:54.283 に答える