Подтвердить что ты не робот

Как использовать классы 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 ();       
  }
}
4b9b3361

Ответ 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.