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! :)
Mc FettoMedlem sedan nov. 20022 355 inlägg Felmeddelande? Rätt namn på filerna?
ahh, felmeddelande kan vara bra att ha ja :)
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.
Re: Java - läsa från fil
turbonallen skrev:
Självklart ligger filerna "times" och "stops" i samma mapp som .java - filen.
Jag hoppas att du menar att de ligger i samma mapp som classfilen? :)
Jag testade här hemma (också på windows) och din kod fungerade fint... (med filerna i samma mapp som class-filen)
jo .class-filerna lägger sig i samma mapp som java-filerna som standard
Ingen som har nån idé på vad som kan vara fel?
Tycker det är konstigt att inte jag lyckas kompilera
Lyckas du inte kompilera heller? Då är det förmodligen classpathen som behöver sättas... :)
Tack för all hjälp hittils
jag testade att sätta classpathen till samma som där .java-filerna ligger, men det hjälpte inte så mycket
Jag testade även att hårdkoda sökvägarna i mitt program, till dit filerna ligger, men det hjälpte inte det heller.
Och så testade jag att döpa om filerna till något med en filändelse, istället för bara "times" och "stops", men det gjorde ingen skillnad det heller.
Jag kan inte förstå att programmet har så svårt att hitta filerna, hur mycket ska man behöva beskriva för programmet innan det fattar? :)
Det är förövrigt NetBeans IDE 3.6 som det heter, det kom med när jag tankade hem java-grejset från sun's hemsida.
Hmmm...
Lyckades du kompilera java-filerna då?
nej, jag lyckas inte kompilera java-filerna
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.
börjar bli sur på netbeans
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...
Mc FettoMedlem sedan nov. 20022 355 inlägg Jo, det lär vara Classpath:en
Jag testade koden och fick den att hitta en dummyfil
jonnyzMedlem sedan okt. 2004502 inlägg Om du har laddat ner Suns JDK bör du kunna sätta vanliga PATH för systemet till mappen där du har javac.exe.
Se till att du har med "." i classpath.
Prova sedan att starta en dosprompt/kommadoradsfönster och gå till rätt katalog. Prova sedan
javac ReadData.java
och rapportera eventuella felmeddelanden.