0

我想知道为什么这段代码:

import java.io.*;
import java.util.Random;

public class RandomNumbers {
public static void main(String[] args) throws IOException {

    PrintWriter output = new PrintWriter("randomNumbers.txt");
    final int randomNumberCount = 100;
    Random randomGenerator = new Random();


    for (int i = randomNumberCount; i >= 0; i--)
    {
    output.print(randomGenerator.nextInt(10) + " ");
    }
    output.close();

  }
}

给我一个文本文件:

‰‹‸‸‹‵‹‴‶′′‴‷″‵‷‴′‶‷‵‹‷′‱″″‸‰‷‸′″‵‹″′‶‶‴‶‴‸′″‹‶‱‱‰‸‸‱‷‶‹‶‶‵‰‹‰‰‹‱‸‷‱‵‶‵‷′‱‵‵‸‸‵‵‱‸‷‸‸‱‸‱‶‱‸″‸′‶″‸‸‷‶′

当我将其更改为选择 11 或以上的随机数时,它可以工作。如果我将其保持在 10 并使其选择 48 个或更低的随机数,则它可以工作。

我错过了什么?

编辑 它将在记事本++中正确显示,但在记事本中不正确。

4

1 回答 1

3

将来,尝试 A:指定要使用的字符集(我猜记事本不支持默认的 PrintWriter 之一,仅支持 UTF-8)。或 B:使用不同类型的 OutputStreams,因为看起来 PrintWriter 使用的是记事本无法识别的奇数字符集,因此是随机的时髦字符。

于 2012-09-02T04:04:20.190 回答