import java.io.*;
class Iostream5{
public static void main(String[] args)throws Exception{
FileOutputStream f1=new FileOutputStream("ajay.txt");
String aa="hello ajay its very bad that u given all information";
byte Fileinfo[]=aa.getBytes(aa);
f1.write(Fileinfo);
f1.close();
System.out.println("Sucesss...");
}
}
异常追踪
线程“main”中的异常
java.io.UnsupportedEncodingException: hello ajay its very bad that u given
all information
at java.lang.StringCoding.encode(StringCoding.java:341)
at java.lang.String.getBytes(String.java:916)
at Iostream5.main(Iostream5.java:6)
答案 0 :(得分:3)
错误在行
中byte Fileinfo [] = aa.getBytes(aa);
您传递的参数应该是字符集编码(例如“UTF-8”)。由于String aa本身不是有效的编码,因此会出现UnsupportedEncodingException。
答案 1 :(得分:1)
没有使用您正在使用的签名String.getBytes(String)
的方法。相反,使用aa.getBytes()
或将签名更改为Charset
,这是另一种选择,如docs中所示。
答案 2 :(得分:0)
如上所述,您可以更改此行代码:
byte Fileinfo[]=aa.getBytes(aa);
通过
byte Fileinfo[]=aa.getBytes(Charset.forName("UTF-8"));
或
byte Fileinfo[]=aa.getBytes(Charset.forName("Windows-1252"));
取决于您要定位的编码
答案 3 :(得分:0)
检查javaDoc以了解您正在使用的方法。
getBytes(String charsetName) 使用指定的字符集将此String编码为字节序列,并将结果存储到新的字节数组中。
参数应该包含有效的charsetName,而不是要转换为字节的字符串。