Как добавить запятую после каждого байта, прочитанного из файла, и записать байт и запятую в другой файл? - PullRequest
0 голосов
/ 23 июня 2019

У меня есть текстовый файл, который содержит только цифры, и я хочу скопировать эти цифры из этого файла в другой и поставить запятую после каждой цифры.

Я попытался написать еще один байт, который представляетзапятая в ASCII после того, как каждый байт прочитан и переписан из файла в другой, но, похоже, он переопределяет его или добавляется в него.Пытаясь решить эту проблему, я использовал flush(), но ничего не меняется.

BufferedInputStream input = null;
BufferedOutputStream output = null;
try {
  // inPath & outPath are already defined
  input = new BufferedInputStream(new FileInputStream(inpath));
  output = new BufferedOutputStream(new FileOutputStream(outPath));

  int c;
  while ((c = input.read()) != -1) {
    if (c >= 48 && c <= 57) {  // making sure that the byte is a number
      output.write(c);
      output.write(44);  // 44 is the decimal representation of the comma (,)
    }
  }
} finally {
  if (input != null) {
    input.close();
  }
  if (output != null) {
    output.close();
  }
}

, если у меня есть цифры, подобные этому в первом файле:

123456789

Я ожидаю увидеть ихв другом файле вот так:

1,2,3,4,5,6,7,8,9

но я вижу такие вещи:

ⰱⰲⰳⰴⰵⰶⰷⰸⰹ

1 Ответ

0 голосов
/ 23 июня 2019
Files.write(Paths.get("e:/numbersSeparated.txt"),
    new String(Files.readAllBytes(Paths.get("e:/numbers.txt")), StandardCharsets.UTF_8)
    .replaceAll(".(?!$)", "$0,").getBytes(StandardCharsets.UTF_8));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...