2013-10-12 2 views
0

Я пытаюсь прочитать файл cdv в моей программе java, написанной в eclipse на mac. Это отлично работает, когда я читаю файл из каталога на моем компьютере, но я хотел бы прочитать csv-файл из Интернета (Yahoo Finance в моем случае). Это отлично работает на ПК, поэтому, вероятно, это связано с Mac. Я проверил несколько различных вариантов, используя обратную косую черту, несколько обратных косых черт и т. Д., Но я не могу заставить его работать, поэтому я обращаюсь к вам умным людям.java.io.FileNotFoundException ошибка при загрузке удаленного URL-адреса

Это мой код:

public void run() { 

      String csvFile = "http://ichart.finance.yahoo.com/table.csv?s=SPHS&a=05&b=9&c=2013&d=09&e=12&f=2013&g=d&ignore=.csv"; 
      System.out.println(csvFile); 
      BufferedReader br = null; 
      String line = ""; 
      String csvSplitBy = ","; 

      try { 

       br = new BufferedReader(new FileReader(csvFile)); 
       while ((line = br.readLine()) != null) { 

        String[] output = line.split(csvSplitBy); 

        System.out.println("On "+output[0]+" Closing price was: "+output[6]); 
       } 
      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } catch (IOException e){ 
       e.printStackTrace(); 
      } finally { 
       if (br != null) { 
        try { 
         br.close(); 
        }catch (IOException e) { 
         e.printStackTrace(); 
        } 
       } 
      } 

      System.out.println("Done!"); 

     } 

Это ошибка и выход я получаю:

http:\\ichart.finance.yahoo.com\table.csv?s=SPHS&a=05&b=9&c=2013&d=09&e=12&f=2013&g=d&ignore=.csv 
java.io.FileNotFoundException: http:\\ichart.finance.yahoo.com\table.csv?s=SPHS&a=05&b=9&c=2013&d=09&e=12&f=2013&g=d&ignore=.csv (No such file or directory) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:120) 
    at java.io.FileInputStream.<init>(FileInputStream.java:79) 
    at java.io.FileReader.<init>(FileReader.java:41) 
    at ReadCSV.ReadCSV.run(ReadCSV.java:28) 
    at ReadCSV.ReadCSV.main(ReadCSV.java:13) 
Done! 

ответ

2

Вы не можете использовать FileReader, чтобы получить содержимое из удаленного URL-адреса.

Вы можете использовать URL класс:

URL url = new URL("http://ichart.finance.yahoo.com/table.csv?s=SPHS&a=05&b=9&c=2013&d=09&e=12&f=2013&g=d&ignore=.csv"); 
InputStream is = url.openStream(); 
// Read URL's content from `is` 
br = new BufferedReader(new InputStreamReader(is, "UTF-8")); 

Проблема не имеет ничего общего с Mac OS Eclipse. Вы получите ту же ошибку на каждой платформе.

+0

Вы уверены, что это UTF-8? – hexafraction

1
new FileReader(csvFile) 

Это не локальный файл. Создание URL объекта:

URL url=new URL("http://ichart.finance.yahoo.com/table.csv?s=SPHS&a=05&b=9&c=2013&d=09&e=12&f=2013&g=d&ignore=.csv"); 

и загрузить его с:

br=new BufferedReader(new InputStreamReader(url.openStream())); 
+0

Огромное вам спасибо, сейчас это прекрасно работает. – user2873939

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

  • Нет связанных вопросов^_^