だから私は、ユニコードを使用するテキストをファイルに書き込むことになっているプログラムを持っています。Eclipse を使用するとすべてが機能しますが、エクスポートすると機能しません。Eclipse で実行すると、次のようになります。
Все товары: Ted По цене: 100руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп
По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По価格: 10руб 価格: 10рубПроданные товары: Ted По цене: 100руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб
Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По цене: 10руб Дерп По価格: 10руб 価格: 10руб重要なこと:
価格: 11 価格: 11 価格: 0 価格: 200руб
そして、これは、ビルドされたjarから実行すると次のようになります。
??? ??????:
????????? ??????:テッド?? ??????: 100??? ???? ?? ??????: 10??? ???? ?? ??????: 10??? ???? ?? ??????: 10??? ???? ?? ??????:
10??? ???? ?? ??????: 10??? ???? ?? ??????: 10??? ???? ?? ??????: 10??? ???? ?? ??????: 10??? ???? ?? ??????: 10??? ???? ?? ??????: 10????? ????????? ??????:
??????? ????????????: 11 ???-?? ??????????: 11 ???-?? ?? ??????????: 0 ???????: 200???
これが私のコードです:
public void writeToFile(Purchase purchase, String dir) throws Exception {
file = new File(dir);
if (!file.exists()) {
file.createNewFile();
}
printer.println(purchase.getName() + " По цене: "
+ purchase.getPrice() + "руб");
Timer timer = new Timer();
}
public void writeFooter(List<Purchase> list) throws Exception {
int amountSold = 0;
int amountNotSold = 0;
int moneyRecieved = 0;
if (file == null) {
file = new File(dir);
}
if (!file.exists()) {
file.createNewFile();
}
openStreams();
printer.println("Все товары: ");
for(int i = 0; i < list.size();i++){
writeToFile(list.get(i), dir);
}
printer.println();
printer.println("Проданные товары: ");
for (int i = 0; i <= list.size() - 1; i++) {
if (list.get(i).isSold()) {
writeToFile(list.get(i), dir);
amountSold++;
moneyRecieved += list.get(i).getPrice();
}
}
printer.println();
printer.println("Не проданные товары: ");
for (int i = 0; i <= list.size() - 1; i++) {
if (!list.get(i).isSold()) {
writeToFile(list.get(i), dir);
amountNotSold++;
}
}
printer.println();
printer.println("Всего пренесенно: " + list.size());
printer.println("Кол-во проданно: " + amountSold);
printer.println("Кол-во не проданно: " + amountNotSold);
printer.println("Выручка: " + moneyRecieved + "руб");
closeStreams();
}