Com obrir un fitxer a Java

Com obrir un fitxer a Java

Hi ha maneres següents d'obrir un fitxer a Java:

  • Classe d'escriptori Java
  • Classe Java FileInputStream
  • Classe Java BufferedReader
  • Classe Java FileReader
  • Classe d'escàner Java
  • Paquet Java nio

Classe d'escriptori Java

La classe d'escriptori Java proporciona un obert() mètode per obrir un fitxer. Pertany a a java.awt paquet. La implementació de l'escriptori depèn de la plataforma, per la qual cosa cal comprovar si el sistema operatiu és compatible amb l'escriptori o no. La classe Desktop cerca una aplicació associada registrada a l'escriptori natiu per gestionar un fitxer. Si no hi ha cap aplicació associada o l'aplicació no es pot iniciar, llançarà el fitxer FileNotFoundException . Inicia el navegador predeterminat de l'usuari per mostrar un URI especificat.

  • Llança el client de correu predeterminat de l'usuari amb un URI de correu opcional.
  • Inicia l'aplicació registrada per obrir, editar o imprimir un fitxer especificat.

El obert() El mètode de la classe Desktop llança l'aplicació associada per obrir un fitxer. Pren un fitxer com a argument. La signatura del mètode és:

 public void open (File file) throws IOException  

El mètode llança les següents excepcions:

    NullPointerException: Si el fitxer és nul. IllegalArgumentException: Es llança quan el fitxer no existeix. IOException: Es llança quan no hi ha cap aplicació associada amb el tipus de fitxer donat. UnsupportedOperationExecution: Si la plataforma actual no admet l'acció Desktop.Action.Open.

Exemple

 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(); } } }  

Quan executem el programa anterior, obre el fitxer de text especificat a l'editor de text predeterminat. També podem obrir el fitxer .docx, .pdf i .webp.

Sortida:

Com obrir un fitxer a Java

Classe Java FileInputStream

Java FileInputStream class s'utilitza per obrir i llegir un fitxer. Podem obrir i llegir un fitxer utilitzant el constructor de la classe FileInputStream. La signatura del constructor és:

 public FileInputStream(File file) throws FileNotFoundException  

Accepta un fitxer com a argument. Es tira FileNotFoundException si el fitxer no existeix o el nom del fitxer és un directori.

Exemple

 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(); } } }  

Sortida:

Com obrir un fitxer a Java

Classe Java BufferedReader

Java BufferedReader la classe llegeix el text d'un flux d'entrada de caràcters. Pertany a a java.io paquet. Utilitzem el constructor de la classe BufferedReader per obrir o llegir un fitxer. La signatura del constructor és:

 public BufferedReader(Reader in)  

Crea una memòria intermèdia d'entrada de caràcters que utilitza una memòria intermèdia d'entrada de mida predeterminada. Utilitza un buffer d'entrada de mida predeterminat.

Exemple

 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(); } } }  

Sortida:

Com obrir un fitxer a Java

Classe Java FileReader

Java FileReader class també s'utilitza per obrir i llegir un fitxer. Pertany a a java.io paquet. És una comoditat per llegir els caràcters dels fitxers. S'utilitza per llegir bytes en brut mitjançant la classe FileInputStream. Utilitzem el constructor de la classe FileInputStream per obrir i llegir un fitxer. La signatura del constructor és:

 public FileReader(File file) throws FileNotFoundException  

Accepta un fitxer com a argument. Llança el FileNotFoundException si el fitxer especificat no existeix o el nom del fitxer és un directori.

Exemple

 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(); } } }  

Sortida:

Com obrir un fitxer a Java

Classe d'escàner Java

Java Escàner class també s'utilitza per obrir i llegir un fitxer. Pertany a la classe Scanner java.util paquet. El constructor de la classe Scanner s'utilitza per obrir i llegir un fitxer. La signatura del constructor és:

 public scanner (File source) throws FileNotFoundException  

Accepta un fitxer (per escanejar) com a argument. També llença FileNotFoundException , si no es troba l'origen del fitxer.

Exemple

 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(); } } }  

Sortida:

Com obrir un fitxer a Java

Paquet Java nio

Mètode readAllLines(). : El mètode readAllLines() és el mètode de la classe File. Llegeix totes les línies d'un fitxer i els bytes del fitxer es descodifiquen en caràcters mitjançant el conjunt de caràcters UTF-8. Retorna les línies del fitxer com una llista. La signatura del mètode és:

 public static List readAllLines(Path path) throws IOException  

On ruta és la ruta del fitxer.

El mètode anterior és equivalent a invocar el següent:

 File.readAllLines(path, Standard CharSets.UTF_8)  

Collections.emptyList(): El mètode emptyList() és el mètode de la classe Collection que pertany al paquet java.util. S'utilitza per obtenir una llista buida. La signatura del mètode és:

 public static final List emptyList()  

Exemple

 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 } }  

Sortida:

Com obrir un fitxer a Java