2013-09-02 2 views
0

Я не могу получить файл для чтения в моей программе ... Почему программа не найдет файл? Я не импортирую файл правильно?Файл не найден: Java I/O Issue

Любая обратная связь очень ценится! Спасибо

import java.util.Scanner; 
import java.io.*; 

public class ArraysIO { 

    public static void main(String[] args) throws IOException { 

     //local variables 
     //create array 
     String[] data = new String[100]; 
     //set up counter 
     int count = 0; 

     // Create File and Scanner objects inside main 
     File file = new File("sampledata1.txt"); 
     Scanner inputFile = new Scanner(file); 

     // Read in the names from the file 
     while (inputFile.hasNext() && count < data.length) { 
      data[count] = inputFile.nextLine(); 
      count++; 
     } 

     // Remember to close the file ASAP 
     inputFile.close(); 


     // TODO Auto-generated method stub 

    } 

} 
+5

В каком каталоге вы работаете над своим приложением и где находится файл, который вы пытаетесь открыть? –

+1

Не могли бы вы включить стек, который вы получаете? – Foon

+2

Добавьте 'System.out.println (file.getAbsolutePath());' перед «Сканером» и посмотрите, к какому файлу вы пытаетесь получить доступ. Вы обнаружите, что этого файла не существует. – jlordo

ответ

0

Похоже, что у меня не было файла в нужном месте, и я не печатал сканер. Вот рабочий код, который у меня был! Спасибо за помощь всем!

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

    public class ArraysIO2 { 

     public static void main(String[] args) throws FileNotFoundException { 


      // Create File and Scanner objects inside main 
      File file = new File("sampledata1.txt"); 
      Scanner inputFile = new Scanner(file); 


      for (int i = 0; i < 10; i++) { 
       System.out.println(inputFile.next()); 
      } 
      inputFile.close(); 
     } 


    } 
0
File file = new File("sampledata1.txt"); 

просит Java сослаться на файл, находящийся в текущем каталоге с именем sampledata1.txt

Теперь текущий каталог, где вы запустили программу в целом, если вы хотите знать, где текущие точки рабочего каталога, Вы можете проверить его

System.out.println(System.getProperty("user.dir")); 
+0

Я закончил тем, что меняю имя файла на расположение файла и, кажется, работает ... Я использовал C:/etc/etc/etc ... –

+0

звучит как системный путь для меня –

+0

hmm ... okay, поэтому как бы я решил изменить его, чтобы любой, кто запускал программу, мог получить доступ к файлу? –

-2

Если файл не найден, даже после того, как на одной и той же папке, что и файл .java затем скопируйте и вставьте каталог с двойной косой чертой!

"C:\\ABCD\\sample.txt" например

Это может быть простой способ

try (BufferedReader rdr = new BufferedReader(new FileReader("C:\\Users\\stackoverflow\\sampledata1.txt"))) { 
     StringBuilder sb = new StringBuilder(); 
     return sb.toString(); 
    } 

Альтернативный способ

import java.util.*; 

public class ArraysIO{ 

    public static void main(String[] args) { 

     try (BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\stackoverflow\\sampledata1.txt"))) 
     { 

      String sCurrentLine; 

      while ((sCurrentLine = br.readLine()) != null) { 
       System.out.println(sCurrentLine); 
      } 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 
} 

Другой альтернативный способ,

импорт java.util. *;

public class ArrayIO { 

    public static void main(String[] args) { 

    File path= new File("C:\\Users\\Farah\\Desktop\\stackoverflow\\sampledata1.txt"); 
    FileInputStream fi = null; 

    try { 
     fi = new FileInputStream(path); 

     System.out.println("Total file size to read (in bytes) : " + fi.available()); 

     int content; 
     while ((content = fi.read()) < 0) { 
     // convert to char and display it 
     System.out.print((char) content); 
     } 

    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
    finally { 
     try { 
     if (fi != null) 
      fi.close(); 
     } 
     catch (IOException ex) { 
     System.out.println("IO"); 
     } 
    } 
    } 
} 

Надеюсь, это решает вашу проблему!

+0

Папка, в которой файл .java не имеет абсолютно никакого отношения к ней. – EJP

Смежные вопросы