使用Java写入Java文件

时间:2015-03-28 03:24:42

标签: java file url csv fileoutputstream

我试图将一些股票市场信息打印到文件中。我从URL获取信息,并将其放入csv。现在它给了我这个错误信息:

ERROR, make sure no other processes are using dumpFile\DIS.csv and run program again
dumpFile\DIS will be skipped or innacurate
java.io.FileNotFoundException: dumpFile\DIS.csv (The system cannot find the path specified)

有问题的代码是:

    DataInputStream in=null;
    FileOutputStream fOut = null;
    DataOutputStream out = null;
    String fileName = getDataFolder()+File.separator+symbol+".csv";

    try {
        URL remoteFile = new URL(downloadURL);
        URLConnection fileStream = remoteFile.openConnection();
        in = new DataInputStream(new BufferedInputStream(
                fileStream.getInputStream()));

        fOut = new FileOutputStream(fileName);
        out = new DataOutputStream(new BufferedOutputStream(fOut));

        int data;
        while ((data = in.read()) != -1) {
            out.write(data);
            //System.out.println(data);
        }
    }

downloadURL变量是我想要下载的网址,我知道这是正确的。 getDataFolder返回" dumpFile"。 Symbol是公司在股票市场上的象征,GOOG,DIS等......在生成错误消息的调用中,我显示我用符号=" DIS"来调用它。这主要是来自我的教授的代码,所以我不能100%确定它是如何工作的,但我认为它应该做的是创建一个名为" dumpFile" + symbol +" .csv&的文件#34;并写信给那。我错了吗?关于确保它不会在其他地方打开的部分,我不会在计算机上的任何地方打开它,我甚至没有一个名为dumpFile \ DIS.csv的文件。

1 个答案:

答案 0 :(得分:0)

确保目录“dumpFile”存在。如果getDataFolder()有时可以返回“dumpFile”之外的其他内容,请执行以下操作:

File folder = new File(getDataFolder());
if(!folder.exists()){
  folder.mkdir();
}