Как сохранить строку в текстовый файл с помощью Java?
В Java у меня есть текст из текстового поля, который хранится в строковой переменной "text".
Как я могу сохранить содержимое переменной "text" в файл?
5 ответ(ов)
В Java 7 вы можете сделать это следующим образом:
String content = "Hello File!";
String path = "C:/a.txt";
Files.write(Paths.get(path), content.getBytes());
Дополнительную информацию можно найти здесь:
http://www.drdobbs.com/jvm/java-se-7-new-file-io/231600403
Вы можете изменить приведённый ниже код, чтобы записать ваш файл из любого класса или функции, обрабатывающей текст. Однако возникает вопрос, зачем миру нужен новый текстовый редактор...
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
String str = "SomeMoreTextIsHere";
File newTextFile = new File("C:/thetextfile.txt");
FileWriter fw = new FileWriter(newTextFile);
fw.write(str);
fw.close();
} catch (IOException iox) {
// обработка исключения
iox.printStackTrace();
}
}
}
Если вам нужно создать текстовый файл на основе одной строки, вы можете использовать следующий код на Java:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class StringWriteSample {
public static void main(String[] args) {
String text = "Это текст, который будет сохранен в файл";
try {
Files.write(Paths.get("my-file.txt"), text.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
В данном примере создается текстовый файл с именем my-file.txt
, в который записывается строка "Это текст, который будет сохранен в файл". Если при записи файла возникнет ошибка, она будет выведена в виде стека ошибок. Не забудьте обрабатывать возможные исключения, чтобы избежать сбоев в вашем приложении.
Ваш код для записи строки в файл на Java 7 выглядит вполне корректно. Однако, чтобы сделать его более устойчивым и удобным для использования, можно добавить обработку исключений и обеспечить закрытие ресурсов. Вот улучшенная версия вашего метода:
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public static void writeToFile(String text, String targetFilePath) {
Path targetPath = Paths.get(targetFilePath);
byte[] bytes = text.getBytes(StandardCharsets.UTF_8);
try {
Files.write(targetPath, bytes, StandardOpenOption.CREATE);
} catch (IOException e) {
e.printStackTrace(); // или выбросьте новое исключение, если это необходимо
}
}
Основные моменты, на которые стоит обратить внимание:
- Обработка исключений: я добавил блок
try-catch
, чтобы поймать возможныеIOExceptions
, которые могут возникнуть при записи в файл. - В этом коде используется
StandardCharsets.UTF_8
для кодирования строки в массив байтов, что является хорошей практикой для работы с текстом.
Теперь метод writeToFile
более безопасен в использовании и поможет предотвратить возможные ошибки во время выполнения.
Используйте API Apache Commons IO. Это просто.
Воспользуйтесь следующим кодом:
FileUtils.writeStringToFile(new File("FileNameToWrite.txt"), "stringToWrite");
Зависимость для Maven:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
Как создать строку Java из содержимого файла?
Как прочитать большой текстовый файл построчно с помощью Java?
Чтение текстового файла в Java
Сохранение списка в файл с помощью Python с учетом переносов строк
Как прочитать все файлы в папке с помощью Java?