2009-03-25 22 views
15

में फ़ाइल से पढ़ें मैं अपने जावा प्रोग्राम में डेटा इनपुट करने के लिए एक टेक्स्ट फ़ाइल से पढ़ने की कोशिश कर रहा हूं। हालांकि, ग्रहण निरंतर मुझे एक स्रोत देता है त्रुटि नहीं मिली कोई फर्क नहीं पड़ता कि मैं फ़ाइल कहां डालता हूं।ग्रहण

मैं एक अतिरिक्त स्रोत परियोजना निर्देशिका में फ़ोल्डर बना लिया है, सवाल में फ़ाइल दोनों इसे और परियोजना के लिए बिन फाइल में है और यह अभी भी यह नहीं मिल रहा।

मैं अपने डेस्कटॉप पर इसकी एक प्रति रख दिया और वहाँ ओर इशारा करते हुए ग्रहण करने की कोशिश की, जब यह मेरे स्रोत देखने पथ के लिए ब्राउज़ करने के लिए कहा।

कोई फर्क नहीं पड़ता कि मैं क्या करता हूं यह फ़ाइल नहीं ढूंढ सकता है।

यहाँ मेरी कोड के मामले में यह उचित है:

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


    Scanner scanner = new Scanner(file); 

अलावा, यह कहता है कि उपयोगकर्ता निर्देशिका परियोजना निर्देशिका है और वहाँ एक प्रति भी है।

मुझे कोई संकेत नहीं है कि क्या करना है।

धन्यवाद, एलेक्स

नीचे सुझाव का प्रयास कर रहा है और फिर से ताज़ा करने के बाद, मैं त्रुटियों की एक मेजबान के द्वारा स्वागत किया।

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  

कोड का इस्तेमाल किया:

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


    Scanner scanner = new Scanner(file); 

उत्तर

18

आप रीफ्रेश करने का प्रयास किया था (दाएं क्लिक करें -> ताज़ा) फ़ाइल कॉपी करने के बाद प्रोजेक्ट फ़ोल्डर वहाँ पर? यह आपके फ़ाइल सिस्टम को ग्रहण की आंतरिक फ़ाइल सिस्टम के साथ सिंक करेगा।

जब आप ग्रहण परियोजनाओं चलाने के लिए, CWD (वर्तमान कार्यशील निर्देशिका) परियोजना के रूट निर्देशिका है। बिन की निर्देशिका नहीं है। Src की निर्देशिका नहीं, लेकिन रूट डीआईआर।

इसके अलावा, यदि आप लिनक्स में हैं, तो याद रखें कि इसकी फाइल सिस्टम आमतौर पर केस संवेदनशील होती हैं।

+0

मुझे लगता है कि समस्या यह थी कि मैंने स्रोत और फाइल फ़ाइल को रीफ्रेश किया था, लेकिन प्रोजेक्ट फ़ाइल नहीं, इसलिए इसे कभी नहीं मिला। मदद के लिए धन्यवाद – Buzkie

+0

क्या यह आपकी समस्या का समाधान करता है? –

+0

हाँ यह अब काम करता है – Buzkie

7

आप एक पूर्ण पथ का उपयोग करने की कोशिश की है:

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

वहाँ अपने कोड के साथ कुछ भी गलत नहीं है, तो निम्न काम करता है मेरे लिए ठीक है जब मैं user.dir निर्देशिका में file.txt की है।

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

ग्रहण पर भरोसा न करें जहां यह कहता है कि फ़ाइल कहां है। विंडोज एक्सप्लोरर या समकक्ष के साथ वास्तविक फाइल सिस्टम पर जाएं और जांचें।

आपके संपादन के आधार पर, मुझे लगता है कि हमें आपके आयात विवरण भी देखना होगा।

4

आप खोज रहे हैं/पढ़ने निष्पादन निर्देशिका में फाइल "fiel.txt" (जहां वर्ग जमा हो जाती है, मुझे लगता है)। इसलिए कहते हैं

आप किसी दिए गए निर्देशिका में फाइल पढ़ने में whish हैं, तो आप के लिए है:

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

तुम भी एक रिश्तेदार पथ, उदाहरण के लिए "./images/photo.gif) के साथ निर्देशिका दे सकता है उदाहरण के लिए एक subdirecory के लिए।

नोट वहाँ भी विभाजक के लिए एक संपत्ति (हार्ड-कोडेड को "/" मेरे उदाहरण में) है कि

संबंध Guillaume

0

तुम सिर्फ फ़ाइल का पूर्ण पथ प्राप्त करने की आवश्यकता, फ़ाइल आप does not के लिए देख रहे हैं ग्रहण के क्रम कार्यक्षेत्र में मौजूद आप उपयोग कर सकते हैं के बाद से - getProperty() या getLocationURI() पद्धतियों फ़ाइल

3

मैं ग्रहण का उपयोग कर रहा का पूर्ण पथ प्राप्त करने के लिए और मुझे नहीं पर फंस गया था "फ़ाइल अपवाद नहीं मिली" की वजह से फ़ाइलों को पढ़ने में सक्षम होना। मैंने इस समस्या को हल करने के लिए क्या किया था, मैंने फ़ाइल को अपनी परियोजना की जड़ में स्थानांतरित कर दिया था। उम्मीद है की यह मदद करेगा।

0

कभी-कभी, जब फ़ाइल सही निर्देशिका में होती है, तब भी "फ़ाइल नहीं मिली" अपवाद है। एक चीज जो आप कर सकते हैं वह टेक्स्ट फ़ाइल को ग्रहण के अंदर छोड़ना है, जहां आपकी कक्षाएं बाईं तरफ हैं। यह आपको पूछने जा रहा है कि क्या आप कॉपी करना चाहते हैं, हाँ पर क्लिक करें। कभी-कभी यह मदद करता है।