/ / Java: работа с файлове - пишете, четете, изтривайте

Java: работа с файлове - писане, четене, изтриване

Java има много инструменти за работа сфайлове, тъй като те служат като съхранение на данни в много програми. Особено често се изисква достъп до файла в Java Android. Всички класове за работа с файлове се намират в пакета java.io, където се съхраняват и класове за работа със входящи и изходящи потоци. Строго погледнато, в Java работата с файловете се осъществява главно чрез потоци от байтове и характер I / O. Изключение в този случай е класа File. Да започнем с това.

Клас Java на файла - работа с файлове

Класът на файловете взаимодейства директно сфайлове и файлова система. Пример за този клас се използва предимно за достъп до файловите свойства и за навигация в йерархията на поддиректории. Той не дефинира начини за извличане и запазване на данни във файл, но с този клас можете да получите много информация за самия файл: дата, час, права за достъп и пътека на директорията. По същество класа File е интерпретация на обект на файл или директория в Java.

За да създадете потребителски модел на файловия клас, използвайте един от конструкторите му: Файл (Струнен папка на папката, Име на файла на стринга).

Помислете за основните методи от този клас, които позволяват да получите информация за файл или директория:

  • getName () - връща името на файла;
  • exists () - връща булевата стойност вярна, ако файлът съществува или е фалшив;
  • isFile () - определя дали даден обект сочи към файл, връщайки съответната логическа стойност;
  • isDirectory () - връща true ако това е папка;
  • canWrite () - връща true ако файлът е написан;
  • canRead () - връща true, ако файлът е четлив;
  • setReadOnly () - прави файла само за четене;
  • length () - връща размера на файла в байтове;
  • renameTo (File new name) - преименува текущия файл според подадения аргумент. Връща true, ако операцията е успешна;
  • delete () - изтрива файла или папката (ако е празен), посочен от обаждащия се;
  • списък () - извлича списък с имена на обекти, съхранени в тази директория, като масив от низове (важи само за директории).

По този начин, използването на класа File в Java осигурява работа с файлове и папки.

Работа с файлове през класовете FileInputStream и FileOutputStream

По-рано споменахме, че в Java, работейки с файловесе осъществява главно чрез входящи потоци. Поточните потоци за работа с файлове се представят под формата на класовете FileInputStream и FileOutputStream. Тези класове са наследниците на базовите абстрактни класове InputStream и OutputStream, съответно, така че методите от тези класове са достъпни за работа с файлове.

Помислете първо за FileInputStream. Конструкторите от този клас са показани на фигурата по-долу:

обработка на файлове в Java

Първият конструктор се аргументирапътят към целевия файл като низ, а второто като представяне на обект. Въпреки, че първият конструктор се използва по-често, във втория случай е възможно да се изследват свойствата на файла, като се използват методите, налични в класа File. Когато създавате потребителски модел от класа FileInputStream, ще се отвори поток от входове за четене на файла.

Конструкторите за клас FileOutputStream са показани по-долу:

java android

Ситуацията е подобна на FileInputStream, но също такаможе да приеме логическата стойност "append", която, когато е вярна, означава, че данните, записани в целевия файл, ще бъдат добавени към съществуващата, а ако е фалшив, файлът ще бъде напълно презаписан, т.е. старите данни няма да бъдат запазени.

Да вземем пример, като използваме тези класове:

Пример за работа с java файла

Входният поток FileInputStream чете данни отfile1.txt файла byte използвайки метода read (). Всеки четец на байтове се съхранява в променлива в цяло число. Тогава в тялото на цикъла докато тази променлива се предава като аргумент към метода за запис на файла FileOutputStream, който записва получения байт във файла file2.txt. Накрая и двата потока непременно се затварят, използвайки метода за затваряне.

Файлове за FileReader и FileWriter

Ако знаете, че при работа сфайлове, които ще се занимавате с текста, вместо байтови потоци има смисъл да се използва характер. Тези потоци се представят от класовете FileReader и FileWriter в Java. Работата с файлове с помощта на тези класове е почти същата като в предишния случай. Те са потомци на класовете Reader и Writer, които определят основните методи за въвеждане и извеждане на данни.

Конструкторите за класовете FileReader и FileWriter са показани на фигурата по-долу:

java работи с файлове и папки

Съгласен съм, разликите в семантиката в сравнение сняма практически байтове. Долната линия е, че тези класове са проектирани специално за работа с знаци в Unicode, които байтови потоци не могат да направят. По този начин се организира работата с файлове в Java. Пример за използване на тези класове е даден по-долу:

обработка на файлове в Java

Както виждате, няма разлика. Струва си да се отбележи, че въпреки че потоците са символични, методът за четене се връща и методът за запис има цяло число. Въпреки че подписът на метода за запис предполага приемане на аргумент от типа int, само долните 16 бита се записват в потока, тъй като героите в Java са представени от толкова много бита.

заключение

Така че, ние подредихме основните класове за работа с файлове в Java. Трябва да се отбележи, че ако ще разработите софтуер за Java Android, можете безопасно да използвате този инструментариум.

Свързани новини


Коментари (0)

Добавете коментар