что переменная «данные» хранит в этой Java-программе? - PullRequest
0 голосов
/ 03 июня 2019

Мой код работает. Мне просто нужно знать о роли конкретной переменной в коде.

Я пытался напечатать значение в переменной «data», но это дает мне некоторые цифры, которые я не могу понять.

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

    FileInputStream fileinputstream = new FileInputStream ("c:\\Users\\USER\\Desktop\\read.TXT");

    FileOutputStream fileoutputstream = new FileOutputStream("c:\\Users\\USER\\Desktop\\write.TXT");

    while (fileinputstream.available() > 0) {
        int data = fileinputstream.read();                                                       
        fileoutputstream.write(data);
    }

    fileinputstream.close();
    fileoutputstream.close();
}

Ответы [ 3 ]

2 голосов
/ 03 июня 2019

Вы можете посмотреть на документы для FileInputStream.read, где указано:

Считывает байт данных из этого входного потока. Этот метод блокируется, если вход еще не доступен.

Возвращает:

следующий байт данных или -1, если достигнут конец файла.

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

1 голос
/ 03 июня 2019

FileInputStream#read() считывает один байт информации из базового файла.

Поскольку эти файлы являются текстовыми файлами (в соответствии с их расширениями), вам, вероятно, следует использовать FileInputStream, но FileReader, для правильной обработки символов, а не байтов, которые их делают. до.

0 голосов
/ 03 июня 2019

fileinputstream.read () возвращает «следующий байт данных или -1, если достигнут конец файла.»

Вы можете прочитать больше здесь

...