Преглед садржаја
Упркос раду са Базе података То је јако добра ствар и штеди нам много посла приликом постављања упита и повезивања записа, понекад морамо генерисати датотеке, јер немамо сервер База података доступни или можда зато што не морамо да чувамо запис већ неповезан скуп података.Управљање датотекама је област коју многи и даље сматрају сложеном или можда застарелом, међутим то није тачно, генерисање датотека је од виталног значаја за развој система и апликација. Датотека може да варира од генерисања а .ткт са неким линијама посебно, до генерације великих .кмл да можемо дефинисати конфигурацију.
Да бисте решили све што укључује креирање датотеке на систему, Јава рачунајте на класу Датотека унутар библиотечког пакета за руковање уносом и излазом података јава.ио. Ова класа нам нуди различите методе које нам омогућавају извођење операција у распону од креирање и брисање датотека, креирање директоријума, потврђивање дозвола итд..
Пре него што у пракси видимо како можемо користити класу за извођење операција над датотекама, морамо схватити да они раде неке од својих главних метода, с тим ћемо имати теоретску основу на коју можемо ићи када нам се представи одређени проблем који захтева руковање датотекама у нашим програмима:
постоји ()Ова метода нам даје Боолеов одговор о постојању одређене датотеке у директоријуму који наведемо приликом позивања, очигледно враћа труе или труе ако је датотека пронађена и фалсе или фалсе ако није.
гетЦаноницалПатх ()Ова метода враћа пуно име укључујући путању до датотеке. Врло је важно добити апсолутни положај наше датотеке у систему на којем извршавамо наш програм.
гетНаме ()За разлику од претходне методе, ово враћа само релативно и кратко име датотеке, то јест, без укључивања адресе или фасцикле у којој се она налази.
може да чита ()Ова метода нам омогућава да проверимо имамо ли дозволу за читање датотеке, веома је важно потврдити можемо ли читати датотеку пре него што започнемо операцију са њом, на овај начин можемо смањити изузетке и уштедети системске ресурсе.
цанВрите ()Ово је још један метод који нам помаже да потврдимо дозволе за датотеке када их применимо на инстанцу класе Датотека ће нас обавестити да ли можемо да напишемо одговарајућу датотеку.
дужина ()Ова метода је једна од најкориснијих јер нам омогућава да знамо величину датотеке, што је важна провера при обради.
исФиле ()Коначно, ова метода нам омогућава да знамо да ли је оно што процењујемо датотека или директоријум, па ћемо знати да ли радимо на структури коју желимо.
Тхе креирање датотеке То је процес којим пишемо унутар система на којем се наш програм изводи. Постоји разлика између писања датотеке и писања унутар датотеке, прва нам говори да датотеку генеришемо унутар система, али јој нисмо нужно додали садржај; С друге стране, друга нам говори да додајемо садржај у постојећу датотеку.
Можда се питају зашто желимо празну датотеку, празна датотека није бескорисна, може бити део већег процеса у апликацији, на пример метода ствара датотеку, а након резултата процеса, друга метода води рачуна о додавању подаци за њега. Такође може бити од виталног значаја за валидације, где генеришемо привремене датотеке да бисмо програму указали у којој се фази процеса налазимо, итд.
Погледајмо испод мали код где генеришемо празну равну датотеку.
импорт јава.ио. *; импорт јава.ио.Филе; јавна класа ЦреатеФилес {публиц статиц воид маин (Стринг [] аргв) баца ИОЕкцептион {иф (аргв.ленгтх == 0) {Систем.ерр.принтлн ("Морате унети име по параметру"); Систем.екит (1); } за (Стринг филенаме: аргв) {нев Филе (филенаме) .цреатеНевФиле (); }}}
Видимо да је прва ствар коју радимо увоз класа јава.ио да бисте могли да приступите руковању изузецима помоћу ИОЕкцептион, затим увозимо класу јава.ио.Филе што нам омогућава да директно манипулишемо датотекама.
Затим креирамо нашу класу и њен метод главни Указујемо да ће примити аргументе, то радимо да бисмо динамички назначили имена датотека. Пошто нам треба име, оно што радимо је мала валидација, која указује на то да ако се не прими назив датотеке, од њега се тражи да га постави и програм се прекида. Коначно, за сваки примљени аргумент креираћемо нову датотеку, а ово што радимо је нова инстанца класе Датотека и са методом цреатеНевФиле () генеришемо датотеку у систему.
Морамо бити свјесни да ћемо добити грешку ако наш програм нема довољне дозволе за креирање датотеке у свом директорију. Без одлагања, да видимо како наш програм изгледа када га покренемо на конзоли:
ЕНЛАРГЕ
Можемо видети како је наша почетна валидација функционисала, а затим када проследимо име датотеке које је генерисано, да бисмо проверили ово друго, једноставно смо урадили дир нашег именика и на тај начин проверавамо постојање датотеке.Још једна од најчешћих операција при раду са датотекама након писања и брисања је преименовање, за ово у Јава Морамо пратити процес који може изгледати компликован, али, као што ћемо видети у примеру који ће пратити објашњење, то је нешто што је прилично лако разумети.
Како се то ради?Преименујте датотеку у Јава захтева два објекта типа Датотека, први ће садржати датотеку коју желимо преименовати, а друга садржи ново име датотеке, када испунимо ове услове морамо позвати методу ренамеТо () преко постојећег објекта датотеке и проследите му нови објекат са новим именом.
Хајде да видимо код који нам је потребан за извођење операције преименовања у нашој датотеци:
импорт јава.ио. *; импорт јава.ио.Филе; јавна класа РенамеФилес {публиц статиц воид маин (Стринг [] аргв) баца ИОЕкцептион {Филе ФирстОбјецт = нев Филе ("НевФиле.ткт"); Датотека сецондобјецт = нова датотека ("ФилеВитхНевНаме.ткт"); ФирстОбјецт.ренамеТо (СецондОбјецт); }}
Увозимо одговарајуће класе и пакете, задржавајући исте као у претходном примеру.
Унутар методе главни () ми ћемо креирати наш први објекат и ставићемо назив датотеке коју смо креирали у претходном примеру у овом случају то је ФилеНев.ткт. Затим креирамо други објекат са новим именом које желимо за нашу датотеку, у примеру који смо изабрали ФилеВитхНевНаме.ткт.
Коначно, на први објекат применимо методу ренамеТо () и као аргумент или параметар прослеђујемо му други објекат који има нови назив за нашу датотеку. Хајде да видимо како то изгледа на конзоли када покренемо наш код:
ЕНЛАРГЕ
Приметили смо како се фасцикла променила и сада одражава нашу нову датотеку у поређењу са извршењем првог примера креирања датотеке.Коначно ћемо видети другу операцију која је прилично уобичајена при раду са датотекама, а то је брисање, ово је можда једна од најједноставнијих, јер морамо само знати име датотеке, потврдити да постоји и затим наставити брисање то користећи метод избриши () где ћемо проследити назив предметне датотеке. Погледајмо у следећем коду како то постижемо:
импорт јава.ио. *; импорт јава.ио.Филе; јавна класа ДелетеФиле {публиц статиц воид маин (Стринг [] аргв) {делете ('ФилеВитхНевНаме.ткт'); } публиц статиц воид делете (Стринг филенамеДелете) {три {Филе филе = нев Филе (филенамеДелете); иф (! филе.екистс ()) {Систем.ерр.принтлн ("Датотека" + филенамеДелете + "не постоји у овом директоријуму"); ретурн; } иф (филе.делете ()) Систем.ерр.принтлн ("** Датотека" + филеНамеДелете + "је обрисана **"); елсе Систем.ерр.принтлн ("Није могуће избрисати датотеку:" + филенамеДелете); } цатцх (СецуритиЕкцептион е) {Систем.ерр.принтлн ("Није могуће избрисати датотеку:" + ДелетеФилеНаме + "(" + е.гетМессаге () + ")"); }}}
Видимо да је овај програм мало опсежнији од претходних, то је зато што смо створили функција за вишекратну употребу За брисање датотека, где прво потврђујемо да датотека постоји, затим настављамо да је бришемо, овде ћемо потврдити да је заиста избрисана, у супротном обавештавамо корисника да се датотека не може уклонити из система датотека.
У конзоли можемо видети како смо успели да извршимо ову операцију, за то користимо датотеку коју смо преименовали у претходном примеру, па ћемо када направимо листу садржаја фасцикле видети промену промене:
ЕНЛАРГЕ
На крају ћемо покушати поново да избришемо како бисмо могли да посматрамо како валидације раде:ЕНЛАРГЕ
Овим завршавамо овај водич, научили смо да генеришемо датотеке, поред извршавања две најчешће коришћене радње за манипулацију датотекама, са овим можемо ове технике укључити у наше програме и апликације, уживајући у предностима ове врсте техника може нам донети.