2013-02-15 5 views
0

Я не уверен, где возникают проблемы. У меня есть два класса: один класс testFriends и еще один класс GUIapp. В каждом из классов мой объект должен импортировать файл для использования. В классе testFriends я импортирую файл в основной метод, он анализирует его, и все работает хорошо. В моем классе GUIapp я попытался сделать то же самое, но импортировал его в метод конструктора, и он сообщает мне, что файл не существует. Оба класса файлов находятся в той же папке Src и я использую:Импорт текстового файла в Java Constructor

BufferedReader in = new BufferedReader(new FileReader(inputFile)); 

где файл_ввод это просто строка «friends.txt».

Вот два класса:

//This class works 

public class temp { 

public static void main(String[] args) throws ParseException { 
    try { 
     System.out.println("hey"); 
     BufferedReader in = new BufferedReader(new FileReader("friends.txt")); //create string buffer for reading 
     String line = in.readLine(); //reading first line 
     System.out.println(line); 
    } catch (IOException e) { 
     System.out.println("Fail Import."); 
    } 

} 

} 


//////////The one below doesn't... 

public class GUIapp extends JApplet{ 
//** PANEL **// 
private JPanel outerPanel; 

//** Button **// 
private JButton button1; 


/* 
* Constructor for Getting all the friends set up 
*/ 
public GUIapp() throws ParseException, FileNotFoundException{ 
    BufferedReader in = new BufferedReader(new FileReader("friends.txt"));//Error Line 

} 

/* 
* Create Stuff 
*/ 
public void createStuff() { 
    outerPanel = new JPanel(); //create outer panel 
    button1 = new JButton("Click Me"); 
    outerPanel.add(button1,BorderLayout.SOUTH); 
} 


/* 
* Initialize Stuff 
*/ 
public void init(){ 
    createStuff(); //initialize create stuff 
    this.add (outerPanel); 
} 


} 

Любые идеи, почему, когда оба работают в том же каталоге, можно прочитать в то время как другие не могут?

Спасибо,

EDIT: Ниже исключение генерируется, когда я бегу GUIapp Класс:

java.io.FileNotFoundException: friends.txt (No such file or directory) 
at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(FileInputStream.java:120) 
at java.io.FileInputStream.<init>(FileInputStream.java:79) 
at java.io.FileReader.<init>(FileReader.java:41) 
at GUIapp.<init>(GUIapp.java:50) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
at java.lang.Class.newInstance0(Class.java:355) 
at java.lang.Class.newInstance(Class.java:308) 
at sun.applet.AppletPanel.createApplet(AppletPanel.java:807) 
at sun.applet.AppletPanel.runLoader(AppletPanel.java:714) 
at sun.applet.AppletPanel.run(AppletPanel.java:368) 
at java.lang.Thread.run(Thread.java:680) 
+1

Просьба указать, как и где вы запускаете апплет. В зависимости от вашего ответа вы можете захотеть прочитать [Апплеты могут и не могут делать] (http://docs.oracle.com/javase/tutorial/deployment/applet/security.html). –

+0

Это мой первый проект GUI. Я инициализирую апплет методом «init», который вызывает метод createStuff. – user1234440

+0

Нет, я имею в виду, используя какой инструмент вы используете для запуска апплета? Если вы просматриваете его в браузере, обязательно проверьте эту ссылку, упомянутую выше. В любом случае, вы можете проверить это. –

ответ

1

Во время выполнения апплет не имеет файла вашего ищете. Убедитесь, что файл присутствует во время выполнения.

пожалуйста добавьте этот метод в код, так что вы можете получить файл

public void readFile(String fileToRead){ 
    String line; 
    URL url = null; 
    try{ 
    url = new URL(getCodeBase(), fileToRead); 
    } 
    catch(MalformedURLException e){} 

    try{ 
    InputStream in = url.openStream(); 
    BufferedReader bf = new BufferedReader(new InputStreamReader(in)); 

    // your business logic here 
    } 
    catch(IOException e){ 
    e.printStackTrace(); 
    } 
} 

/* * Конструктор для Получения всех друзей настроенных */

public GUIapp() throws ParseException, FileNotFoundException{ 
    readFile("friends.txt") 
} 

для более подробной информации посмотрите на это изображение с Javase enter image description here

Чтобы создать объект изображения, который использует a.gif в imgDir, апплет может использовать следующий код:

Image image = getImage(getCodeBase(), "imgDir/a.gif"); 
+0

Файл присутствует, его просто можно читать, а другой может «т. – user1234440

+0

апплет действует по-другому. есть разница между –

+0

@ user1234440, это то, что я говорю java.io.FileNotFoundException: friends.txt (Нет такого файла или каталога) –