1. Files
klase
Upang gumana sa mga file, mayroong isang makinis na klase ng utility — java.nio.file.Files
. Mayroon itong mga pamamaraan para sa bawat okasyon. Ang lahat ng mga pamamaraan ng klase na ito ay static at gumagana sa Path object. Mayroong maraming mga pamamaraan, kaya't isasaalang-alang lamang namin ang mga pinakamahalaga:
Pamamaraan | Paglalarawan |
---|---|
|
Lumilikha ng bagong file na ang path aypath |
|
Lumilikha ng bagong direktoryo |
|
Lumilikha ng maramihang mga direktoryo |
|
Lumilikha ng pansamantalang file |
|
Lumilikha ng pansamantalang direktoryo |
|
Tinatanggal ang isang file o direktoryo kung ito ay walang laman |
|
Kumokopya ng file |
|
Naglilipat ng file |
|
Sinusuri kung ang path ay isang direktoryo at hindi isang file |
|
Sinusuri kung ang path ay isang file at hindi isang direktoryo |
|
Sinusuri kung mayroong isang bagay sa ibinigay na landas |
|
Ibinabalik ang laki ng file |
|
Ibinabalik ang buong nilalaman ng isang file bilang isang hanay ng mga byte |
|
Ibinabalik ang buong nilalaman ng isang file bilang isang string |
|
Ibinabalik ang buong nilalaman ng isang file bilang isang listahan ng mga string |
|
Nagsusulat ng hanay ng mga byte sa isang file |
|
Nagsusulat ng string sa isang file |
|
Nagbabalik ng koleksyon ng mga file (at mga subdirectory) mula sa ibinigay na direktoryo |
2. Paglikha ng mga file at direktoryo
Napakadaling gawin ng mga file at direktoryo. Kumbinsihin natin ang ating sarili sa ilang mga halimbawa:
Code | Tandaan |
---|---|
|
Gumagawa ng file |
|
Lumilikha ng isang direktoryo |
|
Lumilikha ng isang direktoryo at lahat ng kinakailangang mga subdirectory kung wala ang mga ito. |
3. Pagkopya, paglipat at pagtanggal
Ang pagkopya, paglipat at pagtanggal ng mga file ay kasingdali lang. Nalalapat din ito sa mga direktoryo, ngunit dapat na walang laman ang mga ito.
Code | Tandaan |
---|---|
|
Kumokopya ng file |
|
Inilipat at pinapalitan ang pangalan ng isang file |
|
Nagtatanggal ng file |
4. Sinusuri ang uri at pagkakaroon ng file
Kapag mayroon kang landas na ibinigay ng ibang tao, gusto mong malaman kung ito ay isang file o isang direktoryo. At sa pangkalahatan, mayroon bang ganoong file/directory o wala?
May mga espesyal na pamamaraan din para dito. Madali mo ring malalaman ang haba ng isang file:
Code | Tandaan |
---|---|
|
|
|
|
|
|
|
|
5. Paggawa gamit ang mga nilalaman ng file
Sa wakas, mayroong isang buong serye ng mga pamamaraan na ginagawang madaling basahin o isulat ang mga nilalaman ng isang file. Halimbawa:
Code | Paglalarawan |
---|---|
|
Basahin ang mga nilalaman ng file bilang isang listahan ng mga string. Ipakita ang mga string |
6. Pagkuha ng mga nilalaman ng isang direktoryo
Ang pinaka-kagiliw-giliw na paraan ay nananatili pa rin. Ito ay ginagamit upang makakuha ng mga file at subdirectory sa isang naibigay na direktoryo.
Pinag-uusapan natin ang newDirectoryStream()
pamamaraan, na nagbabalik ng isang espesyal DirectoryStream<Path>
na bagay. Mayroon itong iterator(!) na magagamit mo upang makuha ang lahat ng mga file at subdirectory ng isang naibigay na direktoryo.
Ito ay mas madali kaysa ito tunog.
Code | Paglalarawan |
---|---|
|
Kumuha ng isang bagay na may listahan ng mga file I-loop ang listahan ng mga file |
Ang DirectoryStream<Path>
bagay ay may dalawang katangian. Una, mayroon itong iterator na nagbabalik ng mga path ng file, at magagamit natin ang bagay na ito sa loob ng isang for-each
loop.
At pangalawa, ang bagay na ito ay isang stream ng data, kaya dapat itong tahasang sarado gamit ang close()
pamamaraan, o ipinahayag na paggamit sa loob ng isang try-with-resources
bloke.
7. Files.newInputStream
paraan
Simula sa Java 5, ang FileInputStream
at FileOutputStream
mga klase ay hindi na ginagamit. Ang isa sa kanilang mga disadvantages ay na kapag ang mga bagay ng mga klase ay nilikha, ang mga file ay agad na nilikha sa disk. At lahat ng mga pagbubukod na nauugnay sa paglikha ng file ay maaaring itapon.
Nang maglaon ay kinilala ito bilang hindi ang pinakamahusay na desisyon. Alinsunod dito, inirerekumenda na gamitin ang mga pamamaraan ng java.nio.Files
klase ng utility upang lumikha ng mga bagay ng file.
Narito ang isang paghahambing sa pagitan ng lumang diskarte at ang bagong diskarte sa paglikha ng mga file:
dati |
---|
|
Pagkatapos |
|
At mayroong katulad na kapalit para sa FileOutputStream
:
dati |
---|
|
Pagkatapos |
|
GO TO FULL VERSION