byte[] bytes = Files.readAllBytes(Paths.get("E:\\111.rar"));
FileOutputStream fileOutputStream = new FileOutputStream(new File("E:\\222.rar"));
String str = new String(bytes);
fileOutputStream.write(string.getBytes(Charset.forName("ISO-8859-1")));
将文件获取字节数组后 转成字符串后,再将这个字符串另写文件失败,文件打不开
控制台能看到是乱码
经过测试是编码问题
fileOutputStream.write(new String(bytes,Charset.forName("ISO-8859-1")).getBytes(Charset.forName("ISO-8859-1"))); //可以解决
这个可以解决指定字符串编码,再输出为指定编码的文件
不过有没有其他办法 只操作 str 字符串 ,(因为原生HttpURlConnection 接收响应转成字符串了 )
试了几种转码 方式均失败:String string = new String(str.getBytes("UTF-8"), "ISO-8859-1"); //失败
请问我该如何修改我的代码?
用二进制编辑器比如winhex打开看看生成的文件,找找规律
rar文件开头有一个明显的特征就是有!Rar 这几个字。看你生成的文件变成什么了。