программирование Java-файлов в Eclipse IDE - PullRequest
1 голос
/ 08 марта 2011

Я пытаюсь запустить базовое программирование Java-файла в Eclipse:

out=new FileOutputStream("myfile.txt");
p=new PrintStream(out);
p.println("my first file programming in java"); 

Я хочу написать на myfile.txt.

Я создал myfile.txt в src, но после запуска программы ничего не пишется. Я попробовал ту же программу, запущенную в cmd, она отлично работает.

пожалуйста, дайте мне знать проблему

Ответы [ 3 ]

6 голосов
/ 08 марта 2011

закрыть FileOutputStream

out=new FileOutputStream("myfile.txt");
p=new PrintStream(out);
p.println("my first file programming in java");
p.close(); 
out.close();
2 голосов
/ 08 марта 2011

Во время выполнения файловые операции выполняются относительно рабочего каталога, когда абсолютные пути не указаны, что означает, что FileOutputStream("myfile.txt") создаст файл в текущем рабочем каталоге, чем бы он ни был.

Если он работает в командной строке, но не в Eclipse, то это должно означать, что src не является вашей текущей рабочей папкой. Я предполагаю, что папка проекта является текущей папкой.

Вы получаете ошибку при запуске из Eclipse или программа просто завершается? Если ошибки нет, то ваш файл создается где-то еще. Поищите его на жестком диске.

Так же, как тест, при запуске вашей программы из Eclipse, непосредственно перед размещенным вами кодом, добавьте следующее и посмотрите, куда он указывает:

System.out.println(System.getProperty("user.dir"));
0 голосов
/ 08 марта 2011

Не уверен, почему я не могу добавить комментарий здесь. @ Зимбабао прав ... Я просто хотел добавить, что проблема действительно сводится к тому, чтобы покраснеть. Если вы посмотрите на исходный код для PrintStream.close () (фактически BufferedWriter), вы заметите, что буфер очищается перед тем, как поток закрывается. Если ваша текстовая строка была достаточно большой, вы, возможно, даже не видели эту проблему. Однако закрытие потока - это как раз то, что нужно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...