Я не уверен, где возникают проблемы. У меня есть два класса: один класс 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)
Просьба указать, как и где вы запускаете апплет. В зависимости от вашего ответа вы можете захотеть прочитать [Апплеты могут и не могут делать] (http://docs.oracle.com/javase/tutorial/deployment/applet/security.html). –
Это мой первый проект GUI. Я инициализирую апплет методом «init», который вызывает метод createStuff. – user1234440
Нет, я имею в виду, используя какой инструмент вы используете для запуска апплета? Если вы просматриваете его в браузере, обязательно проверьте эту ссылку, упомянутую выше. В любом случае, вы можете проверить это. –