小编典典

Java本国语言应用程序无法在IDE外部运行

java

我有一个用netbeans在java下开发的程序。它具有一个文本窗格,该窗格接受以非英语编写的文本,并执行一些操作,包括保存打开的新.....

当我从netbeans运行该程序时,它很好,并且可以完美地工作。但是,当我转到dist文件夹并运行jar(应该是可执行文件)时,它运行良好,但是当我将先前保存的文件打开到编辑器中时,它显示了神秘的字体。

喜欢-

লিখ“原始输入是” <<নতুন_লাইন;চলবে(সংখ্যাপ= ০;প<যতটা;প++)

变成

লিঠ–“原始输入是” << à¦ãध§à ___ লাই࿠ààšà²à¬à§‡(সংখ৯য¾ প
= ০; প <যত¤à¦Ÿàà ¦¾; প ++)

另一件事是有趣的。如果我在编辑器中键入它也可以正常工作(没有字体问题)。

我正在使用这两个功能来读写文件

public void writeToFile(String data,String address)
{
      try{
          // Create file 
    FileWriter fstream = new FileWriter(address);
        BufferedWriter out = new BufferedWriter(fstream);
    out.write(data);
    //Close the output stream
    out.close();
    }catch (Exception e){//Catch exception if any
      System.err.println("Error: " + e.getMessage());
    }

}


public String readFromFile(String fileName) {
   String output="";
    try {
     File file = new File(fileName);
     FileReader reader = new FileReader(file);
     BufferedReader in = new BufferedReader(reader);
     String string;
     while ((string = in.readLine()) != null) {
       output=output+string+"\n";
     }
     in.close();
   } catch (IOException e) {
     e.printStackTrace();
   }
    return output;
 }

我已经将文本窗格的字体设置为vrinda,该字体可以在IDE内运行,正如我提到的那样。

请帮助我找出问题所在。

需要本地支持时,我需要做些什么来发布JAR?



阅读 208

收藏
2020-11-30

共1个答案

小编典典

尝试更改您的阅读逻辑以使用允许设置编码的InputStreamReader:

InputStreamReader inputStreamReader = 
  new InputStreamReader(new FileInputStream (file), "UTF-8" );

还要更改您的编写逻辑以使用OutputStreamWriter,它允许设置编码:

OutputStreamWriter outputStreamWriter = 
  new OutputStreamWriter(new FileOutputStream (file), "UTF-8" );
2020-11-30