文件丢失或处理不可访问

时间:2016-02-05 06:01:42

标签: java eclipse processing

public void setup(){
    String[] rows = loadStrings("data/LifeExpectancyWorldBank.csv");
    lifeExpByCountry = lifeExpByCountryFromCSV(rows);
    countries = GeoJSONReader.loadData(this, "data/countries.geo.json");
    countryMarkers = MapUtils.createSimpleMarkers(countries);
    size(800,600,OPENGL);
    map = new UnfoldingMap(this,50,50,700,500, new Google.GoogleMapProvider());
    MapUtils.createDefaultEventDispatcher(this,map);
    map.addMarkers(countryMarkers);
    shadeCountries();
}

我在setup()中给出了loadstrings方法。但仍然得到文件丢失错误。我正在运行OS X.

5 个答案:

答案 0 :(得分:0)

而不是loadStrings("data/LifeExpectancyWorldBank.csv"),请在没有loadStrings("LifeExpectancyWorldBank.csv")部分的情况下尝试data

阅读the Processing reference,它表示文件是自动从data目录加载的,因此您不必指定data部分。使用您的代码,它正在寻找不存在的data/data/LifeExpectancyWorldBank.csv

如果这不起作用或将来调试,请转到菜单Sketch> Show Sketch Folder。它应该包含一个数据目录,并且应该包含您尝试加载的文件。确保文件存在,具有正确的权限,并且所有内容拼写正确。

答案 1 :(得分:0)

检查LifeExpectancy.java文件所在的路径,您将在src文件夹中找到它。所以正确的道路将是  countries = GeoJSONReader.loadData(this," ../ data / countries.geo.json");

还有更多的行以相同的方式指定路径,都需要更改。

希望这有帮助

答案 2 :(得分:0)

private Map<String, Float> lifeExpByCountryFromCSV(String[] rows){
    Map<String, Float> lifeExpMap = new HashMap<String, Float>();
    for(String row : rows){
        String[] columns = row.split(",");
        if(columns[5]!=null){
            float value = Float.parseFloat(columns[5]);
            lifeExpMap.put(columns[4], value);
        }
    }
    return lifeExpMap;

答案 3 :(得分:0)

如果将文件路径设置为

lifeExpByCountry = loadLifeExpectancyFromCSV("LifeExpectancyWorldBank.csv");
countries = GeoJSONReader.loadData(this, "countries.geo.json");

并将函数loadLifeExpectancyFromCSV定义为

private Map<String, Float> loadLifeExpectancyFromCSV(String fileName) {

    Map<String, Float> lifeExpMap = new HashMap<String, Float>();
    String[] rows = loadStrings(fileName);

    for (String row: rows) {
        String[] columns = row.split(",");
        try{
            float value = Float.parseFloat(columns[5]);
            lifeExpMap.put(columns[4], value);
        }
        catch(NumberFormatException e) {
            System.out.println(columns[4] + " has missing data");
        }
    }

    return lifeExpMap;
}

它应该工作。使用正确的文件路径后的剩余问题是处理csv文件中没有预期寿命数据的行。

答案 4 :(得分:0)

这是旧线程,请尝试

pcregrep --color '\b(?:100|[1-9]?\d)(?=%)' file.txt

这对我有用。