Hej! Jag har ett problem med att läsa in filer i java, koden har fungerat utmärkt innan, när jag kört koden i skolan (linux)
Men nu när jag försöker köra samma kodsnutt hemma (windows) vill det inte riktigt fungera:
import java.io.*;
public class ReadData{
private static final String TimesFile = "times";
private static final String StopsFile = "stops";
/**
* Reads from file TimesFile. The file is expected to contain a two dimensional
* int array
*/
public static int[][] getTimeMatrix(){
int[][] data = null;
try{
ObjectInputStream in = new ObjectInputStream(new FileInputStream(TimesFile));
data = (int[][]) in.readObject();
}
catch(Exception e){
e.printStackTrace();
}
return data;
}
/**
* Reads from file StopsFile. The file is expected to contain a String arrray
*/
public static String[] getStops(){
String[] data = null;
try{
ObjectInputStream in = new ObjectInputStream(new FileInputStream(StopsFile));
data = (String[]) in.readObject();
}
catch(Exception e){
e.printStackTrace();
}
return data;
}
}
Självklart ligger filerna "times" och "stops" i samma mapp som .java - filen.
Någon som kan se vad som är fel?
Tack på förhand! :)
java.io.FileNotFoundException: times (The system cannot find the file specified)
java.io.FileNotFoundException: stops (The system cannot find the file specified)
Och ja, självklart heter filerna just "times" och "stops" (utan citat-tecken)
Och dessa filer ligger i samma mapp som resten av filerna, jag har helt enkelt kopierat mappen med javafilerna från linuxburken i skolan till min egen burk.
edit: jag testade att kompilera på skolans datorer och flytta över de kompilerade filerna till min dator. Det går utmärkt att köra class-filerna, men inte att kompilera java-filerna.
Då är inte classpathen rätt satt! För att du skall få programmet att lira, måste den peka rätt.
Jag tror att du måste kompilera om filerna, eftersom filsystemet ser anorlunda ut på Linux. Det kanske eventuellt läggs till en filseparator före filerna (i programmet) när du kompilerar java-filen. På Linux är denna "/", medans den är "\" på win.
Jag tror att du kommer att få allt att fungera, bara classpathen är rätt...