Как написать новый файл, если имя файла не существует и добавить файл? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть вопрос о том, как создать файл и добавить его.

что у меня есть String getDate = "2020-04-02" для имени файла. поэтому мой файл будет создаваться каждый день, если дата отличается, поэтому мой формат для сохраняемого файла

2020-04-02.text и на завтра мои данные будут сохранены в 2020-04-03.

после этого мои входные данные

String savefile ="aaaa|bbbb|2020-04-02T08:18:35.146"

мой вопрос, как создать файл и добавить мои данные, чтобы исправить файл сохранения?

Я пытался использовать

      System.out.println("savelocation: " + paths);
      Files.write(Paths.get(paths), savefile.getBytes(StandardCharsets.UTF_8), 
              StandardOpenOption.CREATE, StandardOpenOption.APPEND);

но я получил такую ​​ошибку

java.nio.file.NoSuchFileException: /home/ec2-user/saveFile/EUR/USD|2020-04-02.txt
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
        at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)

Мой ожидаемый код: 1. Проверьте путь к файлу, существует он или нет, если он существует. Добавьте данные 2. Если путь к файлу не существует, создайте новый файл. и пишите новые данные

привет

Фуад

Ответы [ 3 ]

0 голосов
/ 02 апреля 2020

Вы можете использовать java.time.LocalDate класс для создания имени файла. Если вы хотите добавить данные, если файл существует, вы можете отправить второй параметр объекту FileWriter как true. Он открывает файл в режиме добавления.

Вы можете проверить, существует файл или нет метода exists() в File классе.

import java.io.*;

public class Main
{
    public static void main(String[] args) throws IOException {

        String savefile ="aaaa|bbbb|" + java.time.LocalDateTime.now().toString();

        String fileName = java.time.LocalDate.now().toString() + ".txt"; 

        File file = new File(fileName);
        if(file.exists() && !file.isDirectory()){
            FileWriter fw = new FileWriter(fileName, true);
            fw.write("\n");
            fw.write(savefile);
            fw.close();
        } else{
            FileWriter fw = new FileWriter(fileName);
            fw.write(savefile);
            fw.close();
        }


    }
}
0 голосов
/ 03 апреля 2020

привет всем спасибо всем вам за эту проблему ... с этим кодом

 System.out.println("savelocation: " + paths);
  Files.write(Paths.get(paths), savefile.getBytes(StandardCharsets.UTF_8), 
          StandardOpenOption.CREATE, StandardOpenOption.APPEND);

спасибо всем вам ... я пропускаю функцию о пути в linux

0 голосов
/ 02 апреля 2020

Вы можете узнать о своем вопросе визита ниже URL. https://www.w3schools.com/java/java_files_create.asp https://www.w3schools.com/java/java_files_read.asp

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.Writer;

Writer output;
output = new BufferedWriter(new FileWriter(my_file_name,true));
output.append("New Line!");
output.close();

Это снизу URL.

Как добавить новую строку текста в существующий файл в Java?

Надеюсь, он вам поможет.

...