如何在Java中正确使用readAllLines?

如何在Java中正确使用readAllLines?,java,file,path,character-encoding,file.readalllines,Java,File,Path,Character Encoding,File.readalllines,我试图读取文件中的每一行,然后将它们拆分。这是我第一次这样做,我不确定我是否使用了正确的字符集或文件路径。谢谢你的帮助!以下是我的尝试: main中的路径(ruta)指定如下: Path ruta=FileSystems.getDefault().getPath("mapa.csv"); 我的文件名是mapa.csv,我正在尝试访问它的文件夹。构造函数如下所示: public void construirMapa() { List<String> lineas = null

我试图读取文件中的每一行,然后将它们拆分。这是我第一次这样做,我不确定我是否使用了正确的字符集或文件路径。谢谢你的帮助!以下是我的尝试:

main中的路径(ruta)指定如下:

Path ruta=FileSystems.getDefault().getPath("mapa.csv");
我的文件名是mapa.csv,我正在尝试访问它的文件夹。构造函数如下所示:

public void construirMapa() {
    List<String> lineas = null;   
    try{
        //this returns null
        lineas = Files.readAllLines(ruta, Charset.defaultCharset());  
    }catch(IOException ex){
        System.out.println(ex.getMessage());
    }
    if(lineas!=null){
        Iterator <String> linea=lineas.iterator();
        while(linea.hasNext()){
            String[] atributo=linea.next().split(";");
        }
    }
}
public void construirMapa(){
列表lineas=null;
试一试{
//这将返回null
lineas=Files.readAllLines(ruta,Charset.defaultCharset());
}捕获(IOEX异常){
System.out.println(例如getMessage());
}
if(lineas!=null){
迭代器linea=lineas.Iterator();
while(linea.hasNext()){
字符串[]atributo=linea.next().split(;);
}
}
}

似乎没问题,您也可以使用以下代码:

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

要在错误情况下获取stacktrace

您显示的代码通常看起来很好;也许除了它对所创建的atributo阵列不起作用之外。你甚至不会注意到那里发生了什么事;您的代码将读取该文件,处理内容。。。但是没有任何明显的副作用!为什么
ruta
是这样指定的?使用
Path ruta=Path.get(“mapa.csv”)