2016-04-24 6 views
0

Aus irgendeinem Grund kann ich die CSV-Dateien zwar nicht herunterladen, sie kann aber vom Programm nicht gelesen werden. Mein Code ist unten und überprüft, ob die CSV-Datei existiert. Ist dies nicht der Fall, wird die URL heruntergeladen, der Code wird heruntergeladen und gelesen. Der Code wird jedoch immer erneut heruntergeladen, obwohl er sich im Pfadordner befindet.Java - Eine CSV-Datei kann nicht gefunden und geladen werden

private void loadData(String path, String url) throws IOException{ 

    File f = new File(path); 
    System.out.println("looking for path " + path); 
    if(f.exists()) { 
     readSavedFile(path); //method to load data 
    } 
    else{ 
     System.out.println("Need to download from internet"); 
     downloadAndRead(url, path); 
    } 

}

Dieser Code gibt

suchen Pfad C: \ Benutzer \ n_000 \ Arbeitsplatz \ Programme \ GOOG.csv Need aus dem Internet herunterladen. Suche nach Pfad C: \ Benutzer \ n_000 \ workspace \ Program \ CHK.csv Notwendigkeit, aus dem Internet herunterladen.

Der Code, den ich den Pfad erstellen bin mit, ist dies:

 String save = "filename"; //in program use this is the name of the stock eg GOOG or CHK 
     Path currentRelativePath = Paths.get(""); 
     String savedFolder = currentRelativePath.toAbsolutePath().toString() + "\\"; 

     path = savedFolder+save+".csv"; 
+0

Sind Sie sicher, dass es ein 'C: \ Benutzer \ n_000 \ Arbeitsplatz \ Programme \ GOOG.csv'? –

+2

exists() kann false aus verschiedenen Gründen wie z. B. Berechtigungen zurückgeben oder wenn der Aufruf fehlschlägt. –

+0

@RC. Ich bin sicher, dass die Datei existiert – jonbon

Antwort

0

Seine Arbeit in Ordnung, ich sehe habe keine Probleme, ich meine getesteten Code bin Entsendung, hoffen, dass es nützlich sein kann.

import java.io.File; 
import java.io.IOException; 
import java.nio.file.Path; 
import java.nio.file.Paths; 

public class Test { 

    public static void main(String ar[]) 
    { 
     Test test=new Test(); 
    } 
    public Test() 
    { 
     String save = "GOOG"; //in program use this is the name of the stock eg GOOG or CHK 
     Path currentRelativePath = Paths.get(""); 
     String savedFolder = currentRelativePath.toAbsolutePath().toString() + "\\"; 
     String path = savedFolder+save+".csv"; 
     String url=null; 

     try 
     { 
      loadData(path,url); 

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


    private void loadData(String path, String url) throws IOException 
    {  
     File f = new File(path); 
     System.out.println("looking for path " + path); 
     if(f.exists()) { 
      readSavedFile(path); //method to load data 
     } 
     else{ 
      System.out.println("Need to download from internet"); 
      downloadAndRead(url, path); 
     } 
    } 
    public void readSavedFile(String path) 
    { 
     System.out.println("Reading file"); 
    } 

    public void downloadAndRead(String url,String path) 
    { 
     System.out.println("Downloding file"); 
    } 
} 
Verwandte Themen