Книга: Основы программирования на Java
11.5. Файловый поток FilelnputStream
11.5. Файловый поток FilelnputStream
Класс FilelnputStream используется для ввода данных из файлов. В приведенном ниже примере создается два объекта этого класса, использующие один и тот же дисковый файл.
InputStream f0 = new FileInputStream(“/autoexec.bat");
File f = new File("/autoexec.bat"):
InputStream f1 = new FilelnputStream(f);
Когда создается объект класса FilelnputStream, он одновременно с этим открывается для чтения. FilelnputStream замещает шесть методов абстрактного класса InputStream. В приведенном ниже примере показано, как можно читать одиночные байты, массив байтов и поддиапазон массива байтов. В этом примере также показано, как методом available можно узнать, сколько еще осталось непрочитанных байтов и как с помощью метода skip можно пропустить те байты, которые вы не хотите читать,
import java.io.*;
import java.util.*;
class FilelnputStreamS {
public static void main(String args[]) throws Exception {
int size;
InputStream f1 = new FileInputStream(“/wwwroot/default.htm");
size = f1.available();
System.out.println("Total Available Bytes: " + size);
System.out.println("First 1/4 of the file: read()");
for (int i=0; i < size/4; i++) {
System.out.print((char) f1.read());
}
System.out.println("Total Still Available: " + f1.available());
System.out.println("Reading the next 1/8: read(b[])");
byte b[] = new byte[size/8];
if(fl.read(b) !=b.length) {
System.err.println("Something bad happened");
}
String tmpstr = new String(b, 0,0, b.length);
System.out.println(tmpstr);
System.out.println("Still Available: " + f1.available());
System.out.println("Skipping another 1/4: skip()");
f1.skip(size/4);
System.out.println( "Still Available: " + f1.available());
System.out.println("Reading 1/16 into the end of array");
if (f1.read(b, b.length-size/16, size/16) != size/16) {
System.err.println("Something bad happened");
}
System.out.println("Still Available: " + f1.available());
f1.close();
}
}
- Достоинства и недостатки потоков
- Стандартные потоки: stdin, stdout, stdeir, stdaux, stdprn.
- 1.2 Процесс, контекст процесса и потоки
- Не допускайте того, чтобы поток пользовательского интерфейса блокировался на длительное время
- Входящий поток потенциальных клиентов (LeadGen)
- 4.3 Потоковый редактор sed
- Денежный поток из Интернета
- Применение основного потока
- Пример использования фонового потока для выполнения отдельной задачи
- Листинг 5.8. (dup2.c) Перенаправление выходного потока канала с помощью функции dup2()
- Что такое поток?
- Доступ к потоку