Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

OutputStream класы




InputStream класы

InputStream − Java-да қолданылатын кірістік ағындарының моделін анықтайтын абстрактті класс. Бұл кластың барлық әдістері қате пайда болған кезде IOException ерекше жағдайын туындатады. Төменде InputStream класының әдістері cипатталған:

OutputStream − бұл да InputStream сияқты абстрактті класс. Ол Javaдағы шығыстық ағындардың моделін анықтайды. Бұл кластың барлық әдістерінің типі void болады және қате болған кезде IOException ерекше жағдайын туындатады.

8.6 Файлдық енгізу-шығару ағындары

Көптеген операциялық жүйелерде файлдарды байттардың тізбегі түрінде түсінетіндіктен, файлдық енгізу-шығару үшін FileInputStream және FileOutputStream кластарының байттық ағындары жасалады. Бұл әсіресе байт-кодтарды сақтайтын бинарлық файлдар, архивтер, бейнелер және дыбыс үшін қолайлы болып табылады.

Алайда, символдардан құрастырылған мәтіндік файлдар аса көп қолданылады. Символдардың Unicode кодтауында сақталуы мүмкін екендігіне қарамастан, бұл мәтіндер көбінесе байттық кодтауда жазылады. Сондықтан да, мәтіндік файлдар үшін де байттық ағындарды қолдануға болады. Программа жағындағы символдық ағындар мен файл жағындағы байттық ағындардың осындай түрлендірулеріне арналған java.io дестесінде FileReader және FileWriter кластары бар. Бұл кластарды InputStreamReader және OutputStreamWriter кластары кеңейтеді.

Ағындар әртүрлі болғанымен, файлдық енгізу-шығару кластарының қолданысы өте ұқсас. Барлық төрт файлдық ағындардың конструкторларында string жолдық типіндегі файл атауы немесе File класының объектісіне сілтеме көрсетіледі.

Конструкторлар объект құрып қана қоймай, сонымен қатар, файлды іздеп тауып, оны ашады.

Мысалы:

FileInputStream fis = new ("PrWr.java");

FileReader fr = new FileReader("D:\\jdkl.3\\src\\PrWr.java");

Егер файл табылмаса, онда FileNotFoundException класының ерекше жағдайы туындайды, алайда, FileWriter класының конструкторы одан да жалпы түрдегі IOException ерекше жағдайын туындатады. FileWriter немесе FileОutputStream типіндегі ағындар ашылған соң, егер файлдың іші бос болмаса, ішіндегі жазылғандар өшіріледі.

Файл соңына қосып жазу үшін екі аргументі бар конструктор қолданылады. Егер екінші аргумент true болса, ақпарат файл соңына тіркеліп жазылады, ал false болса, онда бұрынғы ішіндегісі жоғалып, файлға жаңа ақпарат толтырылады.

Мысалы:

FileWriter fw = new FileWriter("ch8.txt", true);

FileOutputStream fos = new FileOutputStream("D:\\samples\\newfile.txt");

Бір аргументі бар конструктор арқылы жазу үшін файлды ашса, онда ішіндегісі өшіріліп қалады.

Конструктор орындалған соң, файлдарды оқи беруге болады:

fis.read(); fr.read();

немесе файлға жазуға болады:

fos.write((char)с); fw.write((char)с);

Файлмен жұмыс аяқталған соң ағынды close() әдісімен жабу керек.

FileReader және FileWriter кластарындағы ағындардың түрлендіруі компьютердегі локальдың кодтық кестелері бойынша орындалады.

Кириллицамен терілген мәтіннің дұрыс енгізілуі үшін FileReader класын қолдану керек (FileInputStream емес!). Егер файлдағы мәтіннің кодтауы компьютердегі локальдың кодтауынан өзгеше болса, онда консольға жасалған сияқты «өтпелі түрлендіруді» жасау керек.

Мысалы:

FileInputStream fis = new ("PrWr.java"); // fis байттық ағын

InputStreamReader isr = new InputStreamReader(fis, "KOI8_R"));




Поделиться с друзьями:


Дата добавления: 2015-07-13; Просмотров: 607; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.