Vraag Lezen van bestand in eclipse


Ik probeer uit een tekstbestand te lezen om gegevens in mijn Java-programma in te voeren. Eclipse geeft me echter continu de fout Bron niet gevonden, ongeacht waar ik het bestand heb geplaatst.

Ik heb een map met extra bronnen gemaakt in de projectdirectory, het bestand in kwestie bevindt zich in zowel het bestand als het bin-bestand voor het project en kan het nog steeds niet vinden.

Ik heb zelfs een kopie van het op mijn bureaublad gezet en geprobeerd om de verduistering daar te markeren toen ik werd gevraagd om naar het zoekpad van de bron te zoeken.

Wat ik ook doe, het kan het bestand niet vinden.

hier is mijn code voor het geval het relevant is:

System.out.println(System.getProperty("user.dir"));
    File file = new File("file.txt");


    Scanner scanner = new Scanner(file);

bovendien staat er in de gebruikersdirectory de projectdirectory en daar is ook een kopie.

Ik heb geen idee wat ik moet doen.

Bedankt, Alex

na het proberen van de onderstaande suggestie en het opnieuw verfrissen, werd ik begroet door een groot aantal fouten.

FileNotFoundException(Throwable).<init>(String) line: 195   
FileNotFoundException(Exception).<init>(String) line: not available 
FileNotFoundException(IOException).<init>(String) line: not available   
FileNotFoundException.<init>(String) line: not available    
URLClassPath$JarLoader.getJarFile(URL) line: not available  
URLClassPath$JarLoader.access$600(URLClassPath$JarLoader, URL) line: not available  
URLClassPath$JarLoader$1.run() line: not available  
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method] 
URLClassPath$JarLoader.ensureOpen() line: not available 
URLClassPath$JarLoader.<init>(URL, URLStreamHandler, HashMap) line: not available   
URLClassPath$3.run() line: not available    
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method] 
URLClassPath.getLoader(URL) line: not available 
URLClassPath.getLoader(int) line: not available 
URLClassPath.access$000(URLClassPath, int) line: not available  
URLClassPath$2.next() line: not available   
URLClassPath$2.hasMoreElements() line: not available    
ClassLoader$2.hasMoreElements() line: not available 
CompoundEnumeration<E>.next() line: not available   
CompoundEnumeration<E>.hasMoreElements() line: not available    
ServiceLoader$LazyIterator.hasNext() line: not available    
ServiceLoader$1.hasNext() line: not available   
LocaleServiceProviderPool$1.run() line: not available   
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method] 
LocaleServiceProviderPool.<init>(Class<LocaleServiceProvider>) line: not available  
LocaleServiceProviderPool.getPool(Class<LocaleServiceProvider>) line: not available 
NumberFormat.getInstance(Locale, int) line: not available   
NumberFormat.getNumberInstance(Locale) line: not available  
Scanner.useLocale(Locale) line: not available   
Scanner.<init>(Readable, Pattern) line: not available   
Scanner.<init>(ReadableByteChannel) line: not available 
Scanner.<init>(File) line: not available    

code gebruikt:

System.out.println(System.getProperty("user.dir"));
    File file = new File(System.getProperty("user.dir") + "/file.txt");


    Scanner scanner = new Scanner(file);

15
2018-03-25 10:46


oorsprong


antwoorden:


Heb je geprobeerd de projectmap te vernieuwen (klik met de rechtermuisknop -> vernieuwen) nadat je het bestand daar naartoe hebt gekopieerd? Dat SYNC zal je bestandssysteem SYNC met het interne bestandssysteem van Eclipse.

Wanneer u Eclipse-projecten uitvoert, is de CWD (huidige werkdirectory) de hoofdmap van het project. De map van niet bin. Niet de map van src, maar de hoofdmap.

Als je Linux gebruikt, onthoud dan dat de bestandssystemen meestal hoofdlettergevoelig zijn.


18
2018-03-25 10:52



Heb je geprobeerd een absoluut pad te gebruiken:

File file = new File(System.getProperty("user.dir") + "/file.txt");

7
2018-03-25 10:51



U zoekt / leest het bestand "fiel.txt" in de uitvoeringsdirectory (waar de klasse is opgeslagen, denk ik).

Als je het bestand in een bepaalde map wilt lezen, moet je dat zeggen:

File file = new File(System.getProperty("user.dir")+"/"+"file.txt");

U kunt de map ook een relatief pad geven, bijvoorbeeld "./images/photo.gif) voor een subdirecory bijvoorbeeld.

Merk op dat er ook een eigenschap voor het scheidingsteken is (hard-gecodeerd naar "/" in mijn voorbeeld)

vriendelijke groeten Guillaume


4
2018-03-25 11:05



Ik gebruik Eclipse en ik zat vast omdat ik de bestanden niet kon lezen vanwege een "bestand niet gevonden uitzondering". Wat ik deed om dit probleem op te lossen, was dat ik het bestand naar de hoofdmap van mijn project heb verplaatst. Ik hoop dat dit helpt.


3
2017-07-08 22:56



Er is niets mis met je code, het volgende werkt prima voor mij als ik de file.txt heb in de directory user.dir.

import java.io.File;
import java.util.Scanner;

public class testme {
    public static void main(String[] args) {
        System.out.println(System.getProperty("user.dir"));
        File file = new File("file.txt");
        try {
            Scanner scanner = new Scanner(file);
        } catch (Exception e) {
        System.out.println(e);
        }
    }
}

Vertrouw Eclipse niet op waar het zegt dat het bestand is. Ga met Windows Verkenner of een equivalent naar het eigenlijke bestandssysteem en vink aan.

Op basis van uw bewerking, denk ik dat we ook uw importinstructies moeten zien.


1
2018-03-25 10:59



je moet alleen het absolute pad van het bestand krijgen, omdat het bestand dat je zoekt niet in de runtime-werkruimte van de eclips bestaat u kunt de methoden getProperty () of getLocationURI () gebruiken om het absolute pad van het bestand te krijgen


0
2018-01-18 05:14



Soms, zelfs als het bestand zich in de juiste map bevindt, is er nog steeds de uitzondering "bestand niet gevonden". Een ding dat je zou kunnen doen is om het tekstbestand te laten vallen binnen de eclips, waar je klassen zich aan de linkerkant bevinden. Het gaat u vragen of u wilt kopiƫren, klik op Ja. Soms helpt het.


0
2018-05-14 20:23