Как использовать классы PrintWriter и File в Java?
Я пытаюсь понять PrintWriter для небольшой программы, которую я создаю, и я не могу заставить Java создать файл, а затем написать на нем. Когда я запускаю программу ниже, она дает мне ошибку Filenotfoundexeption в строке 9. Она также не может сделать файл в указанном мной каталоге. Я новичок в этом, поэтому, пожалуйста, попробуйте сохранить ответы просто. Я использую Eclipse.
import java.io.PrintWriter;
import java.io.File;
public class Testing {
public static void main(String[] args) {
File file = new File ("C:/Users/Me/Desktop/directory/file.txt");
PrintWriter printWriter = new PrintWriter ("file.txt");
printWriter.println ("hello");
printWriter.close ();
}
}
Ответы
Ответ 1
Если каталог не существует, его необходимо создать. Java не создаст его сам по себе, так как класс File
- это просто ссылка на сущность, которая также не может существовать вообще.
Как вы заявили, ошибка заключается в том, что файл не может быть создан. Если вы прочитали документацию конструктора PrintWriter, вы можете увидеть
FileNotFoundException - если данная строка не обозначает существующий, доступный для записи обычный файл и новый обычный файл этого имени не может быть создан или если возникает некоторая другая ошибка при открытии или создании файла
Вам следует попытаться создать путь к папке, которую он содержит:
File file = new File("C:/Users/Me/Desktop/directory/file.txt");
file.getParentFile().mkdirs();
PrintWriter printWriter = new PrintWriter(file);
Ответ 2
import java.io.PrintWriter;
import java.io.File;
public class Testing {
public static void main(String[] args) throws IOException {
File file = new File ("C:/Users/Me/Desktop/directory/file.txt");
PrintWriter printWriter = new PrintWriter ("file.txt");
printWriter.println ("hello");
printWriter.close ();
}
}
выдает исключение для файла.
Ответ 3
Передайте объект File конструктору PrintWriter(File file)
:
PrintWriter printWriter = new PrintWriter(file);
Ответ 4
import java.io.File;
import java.io.PrintWriter;
public class Testing
{
public static void main(String[] args)
{
File file = new File("C:/Users/Me/Desktop/directory/file.txt");
PrintWriter printWriter = null;
try
{
printWriter = new PrintWriter(file);
printWriter.println("hello");
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
finally
{
if ( printWriter != null )
{
printWriter.close();
}
}
}
}
Ответ 5
У вас должно быть четкое представление об исключениях из java.
В java проверяются исключения и исключенные исключения.
Проверенные исключения проверяются (не выбрасываются, проверяются) компилятором во время компиляции для плавного выполнения программы во время выполнения.
ПРИМЕЧАНИЕ. И в нашей программе, если у них есть вероятность того, что проверенное исключение поднимется, тогда мы должны обработать это исключенное исключение либо путем try catch, либо путем нажатия ключевого слова. В противном случае мы получим время компиляции. Ошибка:
CE: Неожиданное исключение java.io.FileNotFoundException; должно быть обнаружено или объявлено, что оно будет выброшено.
Как разрешить:
1. Поместите свой код в блок catch try:
2. Используйте ключевое слово throw, как показано другими ребятами выше.
Совет: Узнайте больше об исключениях (мне лично нравится эта тема)
Ответ 6
Java обычно не принимает "/" для использования в определении каталога файлов, поэтому попробуйте следующее:
File file = new File ("C:\\Users\\user\\workspace\\FileTester\\myFile.txt");
Если файл не существует, выполните:
try {
file.createNewFile();
}
catch (IOException e) {
e.printStackTrace();
}
Мне нужна помощь Java, просто приходите ко мне.
Ответ 7
Ну, я думаю, что сначала держите целую основную часть в try catch (или вы можете использовать как public static void main(String arg[]) throws IOException )
, а затем также использовать полный путь к файлу, в котором вы пишете
PrintWriter printWriter = new PrintWriter ("C:/Users/Me/Desktop/directory/file.txt");
все те директивы, как пользователи, Me, Desktop, каталог должны быть созданы пользователем. java не сделает каталоги собственными.
он должен быть как
import java.io.*;
public class PrintWriterClass {
public static void main(String arg[]) throws IOException{
PrintWriter pw = new PrintWriter("C:/Users/Me/Desktop/directory/file.txt");
pw.println("hiiiiiii");
pw.close();
}
}
Ответ 8
import java.io.*;
public class test{
public static void main(Strings []args){
PrintWriter pw = new PrintWriter(new file("C:/Users/Me/Desktop/directory/file.txt"));
pw.println("hello");
pw.close
}
}
Ответ 9
PrintWriter
класс может фактически создать файл для вас.
Этот пример работает в JDK 1.7 +.
// This will create the file.txt in your working directory.
PrintWriter printWriter = null;
try {
printWriter = new PrintWriter("file.txt", "UTF-8");
// The second parameter determines the encoding. It can be
// any valid encoding, but I used UTF-8 as an example.
} catch (FileNotFoundException | UnsupportedEncodingException error) {
error.printStackTrace();
}
printWriter.println("Write whatever you like in your file.txt");
// Make sure to close the printWriter object otherwise nothing
// will be written to your file.txt and it will be blank.
printWriter.close();
Для списка допустимых кодировок см. документацию.
Кроме того, вы можете просто передать путь файла к классу PrintWriter
без объявления кодировки.
Ответ 10
Дважды щелкните значок file.txt
, а затем сохраните его, command + s
, который работал в моем случае. Кроме того, убедитесь, что file.txt
сохранен в папке проекта.
Если это не работает.
PrintWriter pw = new PrintWriter(new File("file.txt"));
pw.println("hello world"); // to test if it works.