Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
таким образом, чтобы все пробелы заменялись дефисами. Используйте при написании программы классы, представляющие байтовые потоки, а также традиционный
способ закрытия файла явным вызовом метода close ().
/ Копирование текстового файла с заменой пробелов дефисами.
В этой версии программы используются байтовые потоки.
Для того чтобы воспользоваться этой программой, укажите
в командной строке имена исходного и целевого файлов. Например:
java Hyphen source target
/
import java.io.*;
class Hyphen {
public static void main(String args[])
{
int i;
FilelnputStream fin = null;
FileOutputStream fout = null;
Приложение А. Ответы на вопросы для самопроверки 579
// проверить сначала, указаны ли оба файла
if(args.length !=2 ) {
System.out.println("Usage: Hyphen From To");
return;
}
// скопировать файл и заменить в нем пробелы дефисами
try {
fin = new FilelnputStream(args[0]);
fout = new FileOutputStream(args[1]);
do {
i = fin.read();
// преобразовать пробел в дефис
if((char)i == ' ') i =
if(i != -1) fout.write(i);
} while(i != -1);
} catch(IOException exc) {
System.out.println("I/O Error: " + exc);
} finally {
try {
if (fin != null) fin.closeO;
} catch(IOException exc) {
System.out.println("Error closing input file.");
}
try {
if(fin != null) fout.close();
} catch(IOException exc) {
System.out.println("Error closing output file.");
}
}
}
}
Перепишите программу, созданную в ответ на предыдущий вопрос, таким образом, чтобы в ней использовались классы, представляющие символьные потоки. На
этот раз воспользуйтесь оператором try с ресурсами для автоматического закрытия файла.
/* Копирование текстового файла с заменой пробелов дефисами.
В этой версии программы используются символьные потоки.
Для того чтобы воспользоваться этой программой, укажите
в командной строке имена исходного и целевого файлов. Например:
java Hyphen2 source target
Для компиляции этого кода требуется JDK 7
или более поздняя версия данного комплекта.
/
import java.io.;
class Hyphen2 {
public static void main(String args[])
throws IOException
{
int i;
// проверить сначала, указаны ли оба файла
if(args.length !=2 ) {
System.out.println("Usage: CopyFile From To");
return;
}
// скопировать файл и заменить в нем пробелы дефисами,
// используя оператор try с ресурсами
try (FileReader fin = new FileReader(args[0]);
FileWriter fout = new FileWriter(args[1]))
{
do {
i = fin.read();
// преобразовать пробел в дефис
if((char)i == • ') i =
if(i != -1) fout.write(i);
} while(i != —1);
} catch(IOException exc) {
System.out.println("I/O Error: " + exc);
}
}
}
К какому типу относится поток System. in?
К типу InputStream.
Что возвращает метод read () из класса InputStream по достижении конца потока?
Значение -1.
Поток какого типа используется для чтения двоичных данных?
Поток типа DatalnputStream.
Классы Reader и Writer находятся на вершине иерархии классов
символьного ввода-вывода
Оператор try без ресурсов служит для .
автоматического управления ресурсами
Если для закрытия файла используется традиционный способ, то это лучше всего
делать в блоке finally. Верно или неверно?
Верно.
Глава 11. Многопоточное программирование
Каким образом имеющиеся в Java средства многопоточного программирования позволяют писать более эффективные программы?