Java: работа с файлове - писане, четене, изтриване
Java има много инструменти за работа с файлове, тъй като те служат като хранилище за данни в много програми. Особено често се изисква достъп до файлове в Java. Всички класове за работа с файлове се намират в пакета java.io, който също така съхранява класове за работа с входящи и изходящи потоци. Строго погледнато, в Java работата с файловете се извършва главно чрез байтове и потоци от знаци за входно-изходни данни. Изключение в този случай е класа 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. Конструкторите от този клас са показани на фигурата по-долу:
Първият конструктор възприема като аргумент пътя към целевия файл като низ, а вторият конструктор като обектно представяне. Макар че първият конструктор се използва по-често, във втория случай е възможно да се проучат наличните файлове в методите на File class. Когато се създаде копие на класа, FileInputStream отваря входящ поток за четене на файла.
Конструкторите на класа FileOutputStream са показани по-долу:
Ситуацията е подобна на FileInputStream, но може също така да вземе логическа стойност "се прикрепя към него", който, когато е вярно показва, че данните се записват в съответния файл ще бъде добавена към съществуващата, и ако фалшиво - ще отидат изцяло презапишете файла, т.е. старите данни няма да бъдат запазени.
Нека да разгледаме един пример, използващ тези класове:
Входният поток FileInputStream чете данните от file1.txt по байт, като използва метода read (). Всеки прочитан байт се съхранява в променлива в цяло число. По-нататък в тялото докато линия тази променлива се предава като аргумент към метода за запис на файла FileOutputStream, който записва получения байт в file2.txt. Накрая и двете нишки са затворени с близкия метод.
Класове FileReader и FileWriter
Ако знаете, че когато се занимавате с файлове, ще се занимавате с текст, а вместо байтови потоци има смисъл да се използват символни. Тези потоци се представят от класовете FileReader и FileWriter в Java. Работата с файлове, използващи тези класове, е почти същата като в предишния случай. Те са потомци съответно на класовете Reader и Writer, които определят основните методи за въвеждане и извеждане на данни.
Конструкторите за класовете FileReader и FileWriter са показани на фигурата по-долу:
Съгласен съм, практически няма разлика в семантиката в сравнение с байтовите потоци. Долната линия е, че тези класове са създадени специално за работа с символи на Unicode, които байтови потоци не могат да направят. Така Java работи с файлове. Пример за използване на тези класове е показан по-долу:
Както виждате, няма разлика. Струва си да се отбележи, че въпреки че нишките са символични, методът за четене се връща и методът за запис има цяло число. Макар че подписът на метода за записване предполага въвеждане на аргумент int, само долните 16 бита се записват в потока, тъй като героите в Java се представят точно от този брой битове.
заключение
Така че, разглобихме основните класове за работа с файлове в Java. Струва си да се отбележи, че ако ще разработите софтуер за Java Android, можете безопасно да използвате този инструмент.
- Как да инсталирате Java на Windows 7
- Как да актуализирам Java на Linux и Windows операционни системи?
- Първата програма Java е Hello World
- Java програмен език
- Как и защо трябва да инсталирам Java на моя компютър?
- PHP. Работа с файлове и директории
- "Java-634" - популярен мотоциклет от седемдесетте години
- Цигари "Java": описание и типове
- Java масиви от низове. Сортиране на масив в Java. Двуизмерен Java масив
- JAR формат: какво да се отвори на компютъра или на телефона
- Java не е инсталиран: какво трябва да направя? Как да инсталирам на Ubuntu?
- Java: InputStream. Входни потоци
- Java Generics: Описание и методи
- BigInteger Java: работи с големи числа
- Java Array. Масиви в Java. Java за начинаещи
- Елементи на обектния модел на Java: абстрактен клас, интерфейс
- Как да активирам Java в Firefox за проблеми с заключването
- Атрибути на файла
- Как да премахнете Java от вашия компютър? Това е лесно!
- Работа с файлови обекти: отворете, прочетете и пишете на файлове в Python
- Как да пиша във файл в Java