?

Log in

No account? Create an account

Previous Entry Share Next Entry
Ошибка в книге Г.Шилдта. Java 8. Руководство для начинающих -2015
Максим, Maksim, Garmash, Европейская, Гармаш
maksim_garmash
В упражнении 10.1 Главы 10 "Ввод-вывод данных" мы создаём утилиту сравнения файлов. Однако, в приведённом в тексте книги коде есть ОШИБКА, из-за которой программа не работает - не хватает буквы S в команде java CompFile FIRST.TXT SECOND.TXT.

В книге данная команда написана, как: java CompFile FIRST.TXT SECOND.TXT
Правильно следует писать так: java CompFiles FIRST.TXT SECOND.TXT

Далее - Шилдт, как всегда отвратительно, пишет - как выполнить данную программу сравнения файлов.
Он пишет: "3. Перед запуском программы скопируйте файл CompFiles. java во временный
файл temp, а затем введите в командной строке следующую команду:
java CompFiles CompFiles.java temp" Он не пишет, КАКИМ образом следует выполнить копирование файла CompFiles. java и в файл с КАКИМ расширением.

Итак, КАК ПРАВИЛЬНО ВЫПОЛНИТЬ УПРАЖНЕНИЕ И ИСПОЛЬЗОВАТЬ ДАННУЮ ПРОГРАММУ:

1. Создайте у себя в Среде разработки новый проект и скопируйте в него следующий кот данного урока:
import java.io.*;
public class CompFiles {
public static void main(String[] args)
{
int i=0, j=0;
if(args.length !=2) {
System.out.println("Использование: CompFiles файл 1 файл 2");
return;
}
try (FileInputStream f1 = new FileInputStream(args[0]);
FileInputStream f2 = new FileInputStream(args[1]))
{
do {
i = f1.read();
j = f2.read();
if(i != j) break;
} while (i != -1 && j != -1);
if (i != j)
System.out.println("Содержимое файлов отличается");
else
System.out.println("Содержимое файлов совпадает");
} catch (IOException exc) {
System.out.println("Ошибка ввода-вывода: " +exc);
}
}
}

2. Зайдите в папку данного проекта (у меня например) по следующему адресу: D:\eclipse\java-latest-released\eclipse\workspace\ReadWrite

3. Создайте там 2 файла: FIRST.TXT и SECOND.TXT. Они должны быть пустыми.

4. В этой же папке создайте файл temp.txt, вставьте в него код из п.1 и сохраните. Затем командой F2 переименуйте этот файл temp.txt в просто temp - то есть сотрите у него расширение .txt

5. Запустите Командную строку с правами администратора и введите следующую команду: java CompFiles FIRST.TXT SECOND.TXT. Вы увидите ответ: "Содержимое файлов совпадает" (рис.1).


6. В файл SECOND.TXT добавьте, к примеру, цифру 1 и снова выполните команду  java CompFiles FIRST.TXT SECOND.TXT. Вы увидите ответ: "Содержимое файлов отличается" (рис.2).


ВОТ ТЕПЕРЬ ВСЁ РАБОТАЕТ ПРАВИЛЬНО!


Comments Disabled:

Comments have been disabled for this post.