Байтові потоки

Наступний приклад показує, як використовувати клас FileInputStream  для читання графічного файлуabcgif з директорії c:\practice В операційній системі Microsoft Windows, для уникнення плутанини зі спеціальними символами Java, які починаються з зворотного слеша, для розділення назв директорій і файлів слід використовувати подвійний слеш: c:\\practice Ця невелика програма виводить на екран не зображення, а всього лише цифри, що показують, в якому закодованому вигляді воно зберігається на диску Кожному байту відповідає позитивне значення від 0 до 255 Клас ByteReader виводить ці значення, розділені пропуском

Зверніть увагу, що клас ByteReader закриває потік в блоці finally Ніколи не викликайте метод close () всередині блоку try / catch відразу після завершення читання з файлу, робіть це в блоці finally У разі виникнення виключення при читанні файлу, виконання переступить через викреслений виклик close () і потік не буде закритий Читання припиняється, коли метод FileInputStreamread () повертає негативне значення

import javaioFileInputStream

import javaioIOException

public class ByteReader {

public static void main(String[] args) { FileInputStream myFile = null

try {

/ / Відкриття байтового потоку, що вказує на файл

myFile = new  FileInputStream(&quotc:\\temp\\abcgif&quot)

while (true) {

int intValueOfByte = myFileread() Systemoutprint(&quot &quot + intValueOfByte)

if (intValueOfByte  == -1){

/ / Досягнуто кінець файлу потрібно вийти з циклу

break

}

} / / Кінець циклу while

//  myFileclose() не кладіть цей виклик тут

} catch (IOException e) {

Systemoutprintln (Неможливо прочитати файл:

+ etoString())

} finally{

try{

myFileclose()

} catch (Exception e1){

e1printStackTrace()

}

Systemoutprintln(

}

}

} Читання файлу завершено успішно)

Наступний фрагмент коду записує кілька байт, представлених цілочисельними значеннями, в файл xyzdat, Використовуючи клас FileOutputStream:

int somedata[]= {56,230,123,43,11,37} FileOutputStream myFile = null

try {

/ / Відкривається файл xyzdat, в який

/ / Записуються дані з масиву

myFile = new  FileOutputStream(&quotxyzdat&quot)

for (int i = 0 i &ltsome datalength i++){

filewrite(data[i])

}

} catch (IOException e) {

Systemoutprintln (Неможливо записати дані у файл: +

etoString())

} finally{

try{

myFileclose()

} catch (Exception e1){

e1printStackTrace()

}

}

Джерело: Java Programming for Kids, Parents and Grandparents by Yakov Fain

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*