Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Java by (7k points)

I want to read certain data from a .csv file and display it. My code below is unable to read the file. How can I overcome this?

public static void main(String [] args) {

    int i=0;

    String filename="result.csv";

    Path pathToFile = Paths.get(filename);

    try (BufferedReader br = Files.newBufferedReader(pathToFile, StandardCharsets.US_ASCII)) { 

        // read the first line from the text file 

        String line = br.readLine(); 

        // loop until all lines are read 

        while (i<10) { 

            // use string.split to load a string array with the values from 

            // each line of 

            // the file, using a comma as the delimiter

            String[] attributes = line.split(","); 

            double x=Double.parseDouble(attributes[8]);

            double y=Double.parseDouble(attributes[9]);

            System.out.println(GeoHash.withCharacterPrecision(x, y, 10));


 

            // read next line before looping 

            // if end of file reached, line would be null 

            line = br.readLine(); 

            i++;

        } 

    } catch (IOException ioe) { 

            ioe.printStackTrace(); 

    } 

}

Output:

 

java.nio.file.NoSuchFileException: result.csv

at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)

at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)

at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)

at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)

at java.nio.file.Files.newByteChannel(Unknown Source)

at java.nio.file.Files.newByteChannel(Unknown Source)

at java.nio.file.spi.FileSystemProvider.newInputStream(Unknown Source)

at java.nio.file.Files.newInputStream(Unknown Source)

at java.nio.file.Files.newBufferedReader(Unknown Source)

at com.uvce.cse.searchiot.geohash.TestGeoHash.main(TestGeoHash.java:19) 

1 Answer

0 votes
by (13.1k points)

The problem with your code it the default directory at application startup is not what you think it is. Try adding these following lines to your code, just after you create the path:

public static void main(String [] args) {

    int i=0;

    String filename="result.csv";

    Path pathToFile = Paths.get(filename);

    System.out.println(pathToFile.toAbsolutePath());

By doing this you will see exactly where it is looking for the file.

How to fix it is your decision. You can use a full path spec instead of just a filename, or put the filename in a special “Resources” directory and reference it using a relative path, or move the file to wherever your default directory is.

Want to learn Java? Check out the Java certification from Intellipaat.

Related questions

Browse Categories

...