В Java существует множество способов создания и записи в файл.
Файлы.newbufferedwriter( Java 8)Файлы.запись(Java 7)Печатающий авторПечатающий автор
Примечание Я предпочитаю Java 7 nio Files.write для создания и записи в файл, потому что в нем гораздо более чистый код и автоматическое закрытие открытых ресурсов.
Files.write(
Paths.get(fileName),
data.getBytes(StandardCharsets.UTF_8));
1. Файлы Java 8.newbufferedwriter
1.1 В этом примере показано, как использовать новую Java 8 Files.newbufferedwriter для создания и записи в файл.
package com.mkyong.io.file;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class CreateFileJava8 {
public static void main(String[] args) {
String fileName = "/home/mkyong/newFile.txt";
Path path = Paths.get(fileName);
// default, create, truncate and write to it.
try (BufferedWriter writer =
Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {
writer.write("Hello World !!");
} catch (IOException e) {
e.printStackTrace();
}
/* Append mode.
try (BufferedWriter writer =
Files.newBufferedWriter(path,
StandardCharsets.UTF_8,
StandardOpenOption.APPEND)){
writer.write("Hello World !!");
} catch (IOException e) {
e.printStackTrace();
}*/
}
}
2. Файлы Java 7.запись
2.1 В этом примере показано, как использовать Java 7 nio Files.write для создания и записи в файл.
По умолчанию он открывает файл для записи; создайте файл, если он не существует; урежьте текущее содержимое, если файл существует.
package com.mkyong.io.file;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
public class CreateFileNio {
public static void main(String[] args) {
String fileName = "/home/mkyong/newFile.txt";
String content = "hello world!";
try {
// Java 1.7
// default, create and write to it.
Files.write(
Paths.get(fileName),
content.getBytes(StandardCharsets.UTF_8));
// Append content
/*Files.write(
Paths.get(fileName),
content.getBytes(StandardCharsets.UTF_8),
StandardOpenOption.APPEND);*/
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.2 Просмотрите Файлы.напишите. исходный код ; он использует функцию “попробуйте с ресурсами” для автоматического закрытия открытых ресурсов.
package java.nio.file;
public final class Files {
public static Path write(Path path, byte[] bytes, OpenOption... options)
throws IOException
{
// ensure bytes is not null before opening file
Objects.requireNonNull(bytes);
try (OutputStream out = Files.newOutputStream(path, options)) {
int len = bytes.length;
int rem = len;
while (rem > 0) {
int n = Math.min(rem, BUFFER_SIZE);
out.write(bytes, (len-rem), n);
rem -= n;
}
}
return path;
}
//...
}
3. Печатающий автор
3.1 В этом примере показано, как использовать PrintWriter для создания и записи в файл.
package com.mkyong.io.file;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
public class CreateFile {
public static void main(String[] args) {
String fileName = "/home/mkyong/newFile.txt";
// Java 10, new constructor, support Charsets
try (PrintWriter writer = new PrintWriter(fileName, StandardCharsets.UTF_8)) {
writer.println("first line!");
writer.println("second line!");
} catch (IOException e) {
e.printStackTrace();
}
// Java 1.5
/*try (PrintWriter writer = new PrintWriter(fileName, "UTF-8")) {
writer.println("first line!");
writer.println("second line!");
} catch (IOException e) {
e.printStackTrace();
}*/
}
}
4. Файл.Создать новый файл()
4.1 В этом примере показано, как использовать File.createNewFile() для создания пустого файла, а Файловую машинку для записи данных в файл.
package com.mkyong.io.file;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class CreateFile2 {
public static void main(String[] args) {
String fileName = "/home/mkyong/newFile.txt";
try {
File file = new File(fileName);
// true if file does no exist and was created successfully.
// false if file is already exists
if (file.createNewFile()) {
System.out.println("File is created!");
} else {
System.out.println("File already exists.");
}
// Write to file
try (FileWriter writer = new FileWriter(file)) {
writer.write("Hello World!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Скачать Исходный Код
$клон git $клон git
$cd java-ввод-вывод
Рекомендации
- Учебник по Оракулу – Перехват и обработка исключений
- Файлы.newbufferedwriter javadoc
- Файлы.напишите JavaDoc
- Печатающий редактор JavaDoc
- Файл.создать новый файл javadoc
- Файловый редактор javadoc
Оригинал: “https://mkyong.com/java/how-to-create-a-file-in-java/”