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

我阅读了该指南,上面写着这样的: 如果给定的字符集不在该列表中,那么肯定会引发此错误。

我很困惑,因为文件中只有字符串和双精度类型数据。

我怎样才能避免抛出这个异常?

谢谢 :)

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 回答