我正在尝试通过从特定jtable的单元格中获取数据来写入RandomAccessFile。我将字符串转换为字节,然后实现.write()函数以写入输出文件。

我做到了,这样我就可以通过将字节打印到控制台中来查看输出内容。但是,当我检查输出文件时,看到了汉字。

String data = (String) table.getModel().getValueAt(r,c).toString();
                    byte[] BytedString = data.getBytes();
                    file.write(BytedString);
                    String s = new String(BytedString);
                    System.out.print(s+" ");


我做错什么了吗...?

最佳答案

在您的代码中,而不是使用:

String s = new String(BytedString);

采用:

String s = new String(BytedString, "UTF-8");

要么

new String(BytedString, "US-ASCII");
new String(BytedString, "ISO-8859-1");


取决于您的平台编码。

String data = (String) table.getModel().getValueAt(r,c).toString();
                    byte[] BytedString = data.getBytes();
                    String s = new String(BytedString, "UTF-8");
                    file.writeChars(s);
                    System.out.print(s+" ");

07-26 03:48