Съдържание
Въпреки работата с Бази данни Това е много добро нещо и ни спестява много работа при отправяне на заявки и свързани записи, има моменти, когато трябва да генерираме файлове, тъй като нямаме сървър База данни налични или може би защото не е нужно да запазваме запис, а несвързан набор от данни.Управлението на файлове е област, която мнозина все още смятат за сложна или може би остаряла, но това е неправилно, генерирането на файлове е жизненоважно при разработването на системи и приложения. Файлът може да варира от генериране на .текст с някои линии по -специално, до генерирането на големи .xml че можем да дефинираме конфигурация.
За да се справите с всичко, което включва създаване на файл в система, Java разчитайте на класа Файл в библиотечния пакет за обработка на въвеждане и извеждане на данни java.io. Този клас ни предоставя различни методи, които ни позволяват да извършваме операции, вариращи от създаване и изтриване на файлове, създаване на директории, валидиране на разрешения и т.н..
Преди да видим на практика как можем да използваме класа за извършване на файлови операции, трябва да разберем, че те изпълняват някои от основните си методи, с това ще имаме теоретична база, към която можем да отидем, когато ни бъде представен конкретен проблем, който изисква обработка на файлове в нашите програми:
съществува ()Този метод ни дава булев отговор за съществуването на определен файл в директория, който посочваме при извикването му, очевидно връща true или true, ако файлът е намерен, и false или false, ако не е така.
getCanonicalPath ()Този метод връща пълното име, включително пътя на файла, много е важно да получим абсолютната позиция на нашия файл в системата, в която изпълняваме нашата програма.
getName ()За разлика от предишния метод, това връща само относителното и краткото име на файла, тоест без да включва адреса или папката, където се намира.
canRead ()Този метод ни позволява да проверим дали имаме разрешение за четене на файла, много е важно да проверим дали можем да прочетем файл, преди да започнем операция с него, по този начин можем да намалим изключенията и да спестим системни ресурси.
canWrite ()Това е друг метод, който ни помага да потвърдим разрешенията за файловете, когато го прилагаме върху екземпляр от класа Файл ще ни уведоми дали можем да напишем съответния файл.
дължина ()Този метод е един от най -полезните, тъй като ни позволява да знаем размера на файла, важна проверка при обработката.
isFile ()И накрая, този метод ни позволява да знаем дали това, което оценяваме, е файл или директория, така че ще знаем дали работим върху желаната от нас структура.
The създаване на файл Това е процес, чрез който пишем в системата, където се изпълнява нашата програма. Има разлика между писане на файл и писане във файл, първият ни казва, че генерираме файла в системата, но не е задължително да добавяме съдържанието към него; От друга страна, вторият ни казва, че добавяме съдържание към съществуващ файл.
Те могат да се чудят защо искаме празен файл, празен файл не е безполезен, той може да бъде част от по -голям процес в приложение, например метод създава файла и след резултат от процес друг метод се грижи за добавяне данни към него. Той може да бъде от жизненоважно значение и при валидирането, когато генерираме временни файлове, за да посочим на програмата на каква фаза от процеса се намираме и т.н.
Нека видим по -долу малък код, където генерираме празен плосък файл.
внос java.io. *; импортиране на java.io.File; публичен клас CreateFiles {public static void main (String [] argv) изхвърля IOException {if (argv.length == 0) {System.err.println ("Трябва да въведете име по параметър"); System.exit (1); } for (String filename: argv) {new File (filename) .createNewFile (); }}}
Виждаме, че първото нещо, което правим, е импортиране на класовете на java.io за да имате достъп до обработка на изключения с IOException, след това импортираме класа java.io.File което ни позволява да манипулираме файловете директно.
След това създаваме нашия клас и в неговия метод главен Показваме, че ще получи аргументи, правим това, за да посочим динамично имената на файловете. Тъй като се нуждаем от име, това, което правим, е малка проверка, която показва, че ако името на файл не е получено, той е помолен да го постави и програмата се прекратява. Накрая за всеки получен аргумент ще създадем нов файл, като това, което правим, е нов екземпляр на класа Файл и с метода createNewFile () генерираме файла в системата.
Трябва да сме наясно, че ако нашата програма няма достатъчно разрешения за създаване на файл в нейната директория, ще получим грешка. Без повече шум, нека да видим как изглежда нашата програма, когато я стартираме на конзолата:
Увеличете
Можем да видим как е работило първоначалното ни валидиране и след това, когато сме предали името на файла, което е генерирано, за да проверим последното, просто сме направили реж от нашата директория и по този начин проверяваме съществуването на файла.Друга най -често срещана операция при работа с файлове след писане и изтриване е преименуването, за това в Java Трябва да следваме процес, който може да изглежда сложен, но, както ще видим в примера, който ще придружава обяснението, това е нещо доста лесно за разбиране.
Как да го направим?Преименувайте файл в Java изисква два типа обекти Файл, първият ще съдържа файла, който искаме да преименуваме, а вторият съдържа новото име на файла, след като изпълним тези условия, трябва да извикаме метода renameTo () над съществуващия файлов обект и му предайте новия обект с новото име.
Нека да видим кода, от който се нуждаем, за да извършим операцията за преименуване на нашия файл:
внос java.io. *; импортиране на java.io.File; публичен клас RenameFiles {public static void main (String [] argv) изхвърля IOException {File FirstObject = new File ("NewFile.txt"); Файл secondobject = нов файл ("FileWithNewName.txt"); FirstObject.renameTo (SecondObject); }}
Импортираме съответните класове и пакети, като запазваме същите като предишния пример.
Вътре в метода main () ще създадем първия си обект и ще поставим името на файла, който сме създали в предишния пример, в този случай той е FileNew.txt. След това създаваме втори обект с новото име, което искаме за нашия файл, в избрания от нас пример FileWithNewName.txt.
Накрая към първия обект прилагаме метода renameTo () и като аргумент или параметър му предаваме втория обект, който има новото име за нашия файл. Нека да видим как изглежда на конзолата, когато изпълняваме нашия код:
Увеличете
Забелязахме как папката се промени и сега отразява нашия нов файл в сравнение с изпълнението на първия пример за създаване на файл.Най -накрая ще видим другата операция, която е доста често срещана при работа с файлове и която е за изтриване, това е може би една от най -простите, тъй като трябва само да знаем името на файла, да проверим дали той съществува и след това да пристъпим към изтриване използвайки метода Изтрий () където ще предадем името на въпросния файл. Нека да видим в следния код как постигаме това:
внос java.io. *; импортиране на java.io.File; публичен клас DeleteFile {public static void main (String [] argv) {delete ('FileWithNewName.txt'); } публично статично изтриване на празнотата (String filenameDelete) {try {File file = new File (filenameDelete); if (! file.exists ()) {System.err.println ("Файлът" + filenameDelete + "не съществува в тази директория"); връщане; } if (file.delete ()) System.err.println ("** Файлът" + fileNameDelete + "е изтрит **"); else System.err.println ("Файлът не може да бъде изтрит:" + filenameDelete); } catch (SecurityException e) {System.err.println ("Не може да се изтрие файл:" + DeleteFileName + "(" + e.getMessage () + ")"); }}}
Виждаме, че тази програма е малко по -обширна от предишните, това е така, защото създадохме a функция за многократна употреба За изтриване на файлове, където първо потвърждаваме, че файлът съществува, след това продължаваме да го изтриваме, тук ще потвърдим, че наистина е изтрит, в противен случай информираме потребителя, че файлът не може да бъде премахнат от файловата система.
В конзолата можем да видим как успяхме успешно да изпълним тази операция, за това използваме файла, който сме преименували в предишния пример, така че когато направим списък със съдържанието на папката, ще видим промяната отразена:
Увеличете
Накрая ще се опитаме да изтрием отново, за да можем да наблюдаваме работещите валидации:Увеличете
С това приключваме този урок, научихме се да генерираме файлове, в допълнение към изпълнението на две от най -често използваните действия за манипулиране на файлове, с това можем да включим тези техники в нашите програми и приложения, наслаждавайки се на предимствата, че този тип техники вие може да ни донесе.