FileNotFoundException on toinen poikkeusluokka saatavilla java.io paketti. Poikkeus tapahtuu, kun yritämme käyttää tiedostoa, joka ei ole käytettävissä järjestelmässä. Se on tarkistettu poikkeus, koska se tapahtuu suoritusaikana, ei käännösaikana, ja sen heittää jokin seuraavista rakentajista:
FileNotFoundException Constructor
FileNotFoundException-luokassa on seuraavat kaksi konstruktoria:
1. FileNotFoundException()
Se muodostaa FileNotFoundException-poikkeuksen ja asettaa virheilmoituksen tyhjäksi, koska emme välitä mitään parametria rakentajalle.
Syntaksi:
Kohteen syntaksi FileNotFoundException on seuraava:
public FileNotFoundException()
2. FileNotFoundException(String str)
Se muodostaa FileNotFoundExceptionin ja asettaa virheen tiedot str, jonka annamme rakentajalle.
Syntaksi:
Kohteen syntaksi FileNotFoundException on seuraava:
public FileNotFoundException(String str)
FileNotFoundException Methods
Se tarjoaa kaikki menetelmät, jotka java.lang.Heitettävä ja java.lang.Object luokat, koska se on näiden molempien luokkien alaluokka.
Java.lang.Throwable-luokan menetelmät
addSuppressed (), fillInStackTrace (), getCause (), getLocalizedMessage (), getMessage (), getStackTrace (), tukahdutetaan (), initCause (), printStackTrace (), printStackTrace (), printStackTrace (), setStackTrace (), ja toString ().
Java.lang.Object-luokan menetelmät
klooni (), on yhtä suuri (), viimeistellä (), getClass (), hash koodin (), ilmoittaa (), ilmoita kaikille (), ja odota ().
Saat lisätietoja näistä menetelmistä käymällä seuraavassa osoitteessa:
https://www.javatpoint.com/object-class
https://www.javatpoint.com/post/java-throwable
Miksi FileNotFoundException tapahtuu?
On pääasiassa kaksi syytä, joiden vuoksi saamme tämän virheen. Syyt tämän poikkeuksen saamiseen ovat seuraavat:
- Kun yritämme käyttää kyseistä tiedostoa, se ei ole käytettävissä järjestelmässä.
- Kun yritämme päästä käsiksi tiedostoon, johon ei ole pääsyä, esimerkiksi jos tiedosto on käytettävissä vain luku -toimintoon ja yritämme muokata sitä, se voi aiheuttaa virheen.
Otetaan esimerkkejä ja ymmärretään molemmat yllä olevat kohdat yksitellen:
FileNotFoundExample1.java
// import required classes and packages package javaTpoint.MicrosoftJava; import java.io.*; // it contains all the input and the output streams // create FileNotFoundExceptionExample1 to undestand the first point. public class FileNotFoundExceptionExample1 { public static void main(String[] args) { // creating an instance of the FileReader class FileReader fileReader = new FileReader('Test.txt'); // create an instance of the BufferedReader and pass the FileReader instance to it. BufferedReader bufferReader = new BufferedReader(fileReader); // declaring an empty string by passing null value String fileData = null; // use while loop to read and print data from buffered reader while ((fileData = bufferReader.readLine()) != null) { System.out.println(fileData); } // closing the BufferedReader object try { bufferReader.close(); } catch (IOException e) { e.printStackTrace(); } } }
Lähtö:
FileNotFoundExample2.java
// import required classes and packages package javaTpoint.MicrosoftJava; import java.io.*; // it contains all the input and the output streams // create FileNotFoundExceptionExample2 to understand the second point. public class FileNotFoundExceptionExample2 { // main() method start public static void main(String[] args) { try { // creating an instance of the File class to open file File fileObj = new File('Test.txt'); // creating an instance of the PrintWriter class by initiating FileWriter class instance PrintWriter printWriter1 = new PrintWriter(new FileWriter(fileObj), true); // print simple text hello world printWriter1.println('Hello world'); printWriter1.close(); // making Test file read only fileObj.setReadOnly(); // try to write data into Test.txt file PrintWriter printWriter2 = new PrintWriter(new FileWriter('Test.txt'), true); printWriter2.println('Hello World'); printWriter2.close(); } // catching exception thrown by the try block catch(Exception ex) { ex.printStackTrace(); } } }
Lähtö:
FileNotFoundExceptionin käsittely
Poikkeuksen käsittelemiseksi on käytettävä try-catch-lohkoa. Laitamme try-lohkoon sen koodirivin, joka voi heittää poikkeuksen. Aina kun poikkeus tapahtuu, catch block käsittelee sen. On olemassa muita tapoja, joilla voimme poistaa FileNotFountException ja jotka ovat seuraavat:
- Jos löydämme virheilmoituksen sellaista tiedostoa tai hakemistoa ei ole ; voimme poistaa tämän poikkeuksen tarkistamalla koodin uudelleen ja tarkistamalla, onko annettu tiedosto saatavilla annetussa hakemistossa vai ei.
- Jos löydämme virheilmoituksen pääsy kielletty , meidän on tarkistettava, onko tiedoston käyttöoikeus vaatimuksemme mukainen vai ei. Jos lupa ei ole vaatimuksemme mukainen, meidän on muutettava tiedoston lupaa.
- varten pääsy kielletty virheilmoituksen, meidän on myös tarkistettava, onko tiedosto toisen ohjelman käytössä vai ei.
- Jos löydämme virheilmoituksen määritetty tiedosto on hakemisto , meidän on poistettava se tai muutettava tiedoston nimi.
Joten FileNotFoundExceptionExample1-luokassa laitamme FileReader-koodin try-catch-lohkoon ja varmistamme, että annettu tiedostonimi on saatavilla hakemistossa.
FileNotFoundExample1.java
// import required classes and packages package javaTpoint.MicrosoftJava; import java.io.*; // it contains all the input and the output streams // create FileNotFoundExceptionExample1 public class FileNotFoundExceptionExample1 { public static void main(String[] args) { // creating an instance of the FileReader class FileReader fileReader; try { fileReader = new FileReader('Test.txt'); // create instance of the BufferedReader and pass the FileReader instance to it. BufferedReader bufferReader = new BufferedReader(fileReader); // declaring an empty string by passing null value String fileData = null; // use while loop to read and print data from buffered reader try { while ((fileData = bufferReader.readLine()) != null) { System.out.println(fileData); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }
Lähtö: