0

Mac の Eclipse で記述された Java プログラムに cdv ファイルを読み込もうとしています。これは、コンピューターのディレクトリからファイルを読み取るときに正常に機能しますが、Web (私の場合は Yahoo Finance) から csv ファイルを読み取りたいと考えています。これは PC で問題なく動作するため、おそらく Mac に関連しています。バックスラッシュ、複数のバックスラッシュなどを使用して、いくつかの異なるオプションをテストしましたが、うまくいかないので、ここの賢い人に頼ります。

これは私のコードです:

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!
4

2 に答える 2

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 とは関係ありません。すべてのプラットフォームで同じエラーが発生します。

于 2013-10-12T12:12:00.607 に答える
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()));
于 2013-10-12T12:15:21.150 に答える