Yra šie būdai, kaip atidaryti failą Java:
- Java Desktop klasė
- Java FileInputStream klasė
- Java BufferedReader klasė
- Java FileReader klasė
- Java skaitytuvo klasė
- Java nio paketas
Java Desktop klasė
„Java Desktop“ klasė suteikia atviras() būdas atidaryti failą. Ji priklauso a java.awt paketą. Darbalaukio diegimas priklauso nuo platformos, todėl būtina patikrinti, ar operacinė sistema palaiko Desktop, ar ne. Darbalaukio klasė ieško susietos programos, užregistruotos vietiniame darbalaukyje, kad galėtų tvarkyti failą. Jei nėra susietos programos arba programos nepavyksta paleisti, ji išmeta FileNotFoundException . Paleidžiama numatytoji vartotojo naršyklė, kad būtų rodomas nurodytas URI.
- Paleidžia numatytąją vartotojo pašto programą su pasirenkamu pašto adresu URI.
- Paleidžiama registruota programa, skirta atidaryti, redaguoti arba spausdinti nurodytą failą.
The atviras() Darbalaukio klasės metodas paleidžia susijusią programą, kad atidarytų failą. Failas laikomas argumentu. Metodo parašas yra:
public void open (File file) throws IOException
Metodas pateikia šias išimtis:
java8 funkcijos
Pavyzdys
import java.awt.Desktop; import java.io.*; public class OpenFileExample1 { public static void main(String[] args) { try { //constructor of file class having file as argument File file = new File('C:\demo\demofile.txt'); if(!Desktop.isDesktopSupported())//check if Desktop is supported by Platform or not { System.out.println('not supported'); return; } Desktop desktop = Desktop.getDesktop(); if(file.exists()) //checks file exists or not desktop.open(file); //opens the specified file } catch(Exception e) { e.printStackTrace(); } } }
Kai paleidžiame aukščiau pateiktą programą, ji atidaro nurodytą tekstinį failą numatytojoje teksto rengyklėje. Taip pat galime atidaryti .docx, .pdf ir .webp failus.
Išvestis:
Java FileInputStream klasė
Java FileInputStream klasė naudojama failui atidaryti ir skaityti. Failą galime atidaryti ir nuskaityti naudodami FileInputStream klasės konstruktorių. Konstruktoriaus parašas yra:
public FileInputStream(File file) throws FileNotFoundException
Ji priima failą kaip argumentą. Tai meta FileNotFoundException jei failo nėra arba failo pavadinimas yra katalogas.
pilnas papildiklis
Pavyzdys
import java.io.*; import java.util.Scanner; public class OpenFileExample2 { public static void main(String args[]) { try { //constructor of file class having file as argument File file=new File('C:\demo\demofile.txt'); FileInputStream fis=new FileInputStream(file); //opens a connection to an actual file System.out.println('file content: '); int r=0; while((r=fis.read())!=-1) { System.out.print((char)r); //prints the content of the file } } catch(Exception e) { e.printStackTrace(); } } }
Išvestis:
Java BufferedReader klasė
Java BufferedReader klasė skaito tekstą iš simbolių įvesties srauto. Ji priklauso a java.io paketą. Failui atidaryti arba skaityti naudojame klasės BufferedReader konstruktorių. Konstruktoriaus parašas yra:
public BufferedReader(Reader in)
Jis sukuria buferinį simbolių įvesties srautą, kuris naudoja numatytojo dydžio įvesties buferį. Jis naudoja numatytojo dydžio įvesties buferį.
Pavyzdys
import java.io.*; import java.util.Scanner; public class OpenFileExample3 { public static void main(String args[]) { try { //constructor of File class having file as argument File file=new File('C:\demo\demofile.txt'); //creates a buffer reader input stream BufferedReader br=new BufferedReader(new FileReader(file)); System.out.println('file content: '); int r=0; while((r=br.read())!=-1) { System.out.print((char)r); } } catch(Exception e) { e.printStackTrace(); } } }
Išvestis:
Java FileReader klasė
Java Failų skaitytuvas klasė taip pat naudojama failo atidarymui ir skaitymui. Ji priklauso a java.io paketą. Tai patogus failų simbolių skaitymui. Jis naudojamas neapdorotiems baitams skaityti naudojant „FileInputStream“ klasę. Failui atidaryti ir skaityti naudojame klasės FileInputStream konstruktorių. Konstruktoriaus parašas yra:
public FileReader(File file) throws FileNotFoundException
Ji priima failą kaip argumentą. Tai išmeta FileNotFoundException jei nurodyto failo nėra arba failo pavadinimas yra katalogas.
operacinės sistemos naudojimas
Pavyzdys
import java.io.*; public class OpenFileExample4 { public static void main(String args[]) { try { //constructor of the File class having file as an argument FileReader fr=new FileReader('C:\demo\demofile.txt'); System.out.println('file content: '); int r=0; while((r=fr.read())!=-1) { System.out.print((char)r); //prints the content of the file } } catch(Exception e) { e.printStackTrace(); } } }
Išvestis:
Java skaitytuvo klasė
Java Skaitytuvas klasė taip pat naudojama failo atidarymui ir skaitymui. Skaitytuvų klasė priklauso java.util paketą. Failų atidarymui ir skaitymui naudojamas Scanner klasės konstruktorius. Konstruktoriaus parašas yra:
Java pavyzdys
public scanner (File source) throws FileNotFoundException
Jis priima failą (nuskaitytą) kaip argumentą. Taip pat meta FileNotFoundException , jei failo šaltinis nerastas.
Pavyzdys
import java.io.File; import java.util.Scanner; public class OpenFileExample5 { public static void main(String[] args) { try { File file=new File('C:\demo\demofile.txt'); Scanner sc = new Scanner(file); //file to be scanned while (sc.hasNextLine()) //returns true if and only if scanner has another token System.out.println(sc.nextLine()); } catch(Exception e) { e.printStackTrace(); } } }
Išvestis:
Java nio paketas
readAllLines() metodas : ReadAllLines() metodas yra Failų klasės metodas. Jis nuskaito visas failo eilutes, o failo baitai iššifruojami į simbolius naudojant UTF-8 simbolių rinkinį. Jis grąžina eilutes iš failo kaip sąrašą. Metodo parašas yra:
public static List readAllLines(Path path) throws IOException
Kur kelias yra failo kelias.
Aukščiau pateiktas metodas yra lygiavertis šių veiksmų iškvietimui:
File.readAllLines(path, Standard CharSets.UTF_8)
Collections.emptyList(): Metodas emptyList() yra rinkinio klasės metodas, priklausantis java.util paketui. Jis naudojamas tuščiam sąrašui gauti. Metodo parašas yra:
public static final List emptyList()
Pavyzdys
import java.util.*; import java.nio.charset.StandardCharsets; import java.nio.file.*; import java.io.*; public class OpenFileExample6 { public static List readFileInList(String fileName) { List lines = Collections.emptyList(); try { lines=Files.readAllLines(Paths.get(fileName), StandardCharsets.UTF_8); } catch (IOException e) { e.printStackTrace(); } return lines; } public static void main(String[] args) { List l = readFileInList('C:\demo\demofile.txt'); Iterator itr = l.iterator(); //access the elements while (itr.hasNext()) //returns true if and only if scanner has another token System.out.println(itr.next()); //prints the content of the file } }
Išvestis: