решил проверить данную задачу написав следующий код (в данном коде я заранее создал бинарный файл (*.bin) через конструкцию BufferedOutputStream(new FileOutputStream), просто уже удалил эти строки).
в общем почему-то через выводит вместо отрицательных чисел - 2 и -5 положительные числа 254 и 251. Как понимаю в оригинальной задаче та же проблема (либо я в клоне еще на этапе BufferedOutputStream накосячил тоже и тогда я вообще не знаю в чем дело)
public static void main(String[] args) {
// напишите тут ваш код
// BufferedReader readerCons = null;
BufferedInputStream fileReader = null;
ArrayList<Integer> list = new ArrayList<>();
File fileName = new File("s2.bin");
BufferedOutputStream bos = null;
try {
// readerCons = new BufferedReader(new InputStreamReader(System.in));
// String fileName = readerCons.readLine();
// fileName.createNewFile();
bos = new BufferedOutputStream(new FileOutputStream(fileName));
bos.write(5);
bos.write(8);
bos.write(-2);
bos.write(11);
bos.write(3);
bos.write(-5);
bos.write(2);
bos.write(10);
bos.close();
fileReader = new BufferedInputStream(new FileInputStream(fileName));
while (fileReader.available() > 0) {
int a = (int )fileReader.read();
System.out.println(a);
if(a%2==0) {
list.add(a);
}
}
}catch (IOException e) {
e.printStackTrace();
} finally {
try {
// readerCons.close();
fileReader.close();
// bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Collections.sort(list);
for(int a : list) {
System.out.println(a);
}
}
}
package com.javarush.task.task13.task1326;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
/*
Сортировка четных чисел из файла
*/
public class Solution {
public static void main(String[] args) {
// напишите тут ваш код
BufferedReader readerCons = null;
BufferedInputStream fileISReader = null;
ArrayList<Integer> list = new ArrayList<>();
try {
readerCons = new BufferedReader(new InputStreamReader(System.in));
String fileName = readerCons.readLine();
fileISReader = new BufferedInputStream(new FileInputStream(fileName));
while (fileISReader.available() > 0) {
int a = fileISReader.read();
if(a%2==0) {
list.add(a);
}
}
}catch (IOException e) {
e.printStackTrace();
} finally {
try {
readerCons.close();
fileISReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Collections.sort(list);
for(int a : list) {
System.out.println(a);
}
}
}