如何在数组列表中用阿拉伯语书写

How to write in arabic in arraylist

我有一个读取文件的应用程序,然后用户用不同的语言更新文件并保存它。但是每当有人更改语言并保存 txt 文件时,都会将字母更改为符号???我想我必须将它保存为 utf-8 格式。任何的想法? 代码的下一部分,当用户单击保存按钮时,我从 jtable 获取数据并将其保存到文件中。 注意:代码没有任何问题。问题是文件必须保存为utf-8。

if(buttonPressed.equals(save)){

         File myFile = new File("youFile.srt");

            try (PrintWriter writer = new PrintWriter(myFile)) {   

            for (int i =0 ; i< cModel.getRowCount(); i++)
            {
               sData.add(cModel.getValueAt(i, 1).toString());
               eData.add(cModel.getValueAt(i, 2).toString());
               tData.add(cModel.getValueAt(i, 3).toString());
               writer.println(i+1 + "\n");
               writer.println(sData.get(i)+" --> " + eData.get(i));
               writer.println(tData.get(i));
               writer.println("\n");
            }
            }catch(FileNotFoundException ioEx){
               ioEx.printStackTrace();
            } 

PrintWriter 需要与 OutputStreamWriter 结合使用,因为它提供构造函数来提供文件格式。您可以执行以下操作:

FileOutputStream outputStream = new FileOutputStream(myFile);
PrintWriter writer = new PrintWriter(new OutputStreamWriter(
    outputStream, StandardCharsets.UTF_8), true)

您正在使用 FileWriter。最好创建一个 FileOutputStream,然后使用 OutputStreamWriter 写入输出。 OutputStreamWriter 允许您指定编码。

Writer writer = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream("youFile.srt"), "UTF-8"));
try {
    writer.write(aString);
} finally {
    writer.close();
}