博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整理、总结、定稿,每天都会整理到12点,为了就是能让大家能够真正了解该技术栈的真正原理,最终从程序员成为一名真正的架构师,写的不一定是全站做好的,但是是全站最用心的~~~。
以后我会推出一些列的文章,每天都会更新,每天进步一点点,发布顺序【java的api基础、应用、实战】->【java开源技术栈及源码分析】->【java开源技术栈整合】->【java低代码开发平台的建设】
一、java.io
1.24 FileWriter
FileWriter
类是 Java I/O 库中用于写入字符数据到文件的类,它继承自 OutputStreamWriter
类。FileWriter
提供了一种方便的方式来将字符数据写入文件。
FileWriter
介绍:
FileWriter
主要用于向文件中写入字符数据。它是通过将字符按字节转换为字节流,并将字节写入文件来实现的。在实际应用中,通常与 BufferedWriter
结合使用以提高性能。
FileWriter
所有字段:
FileWriter
类没有公共字段。
FileWriter
构造方法:
-
FileWriter(File file)
: 创建一个新的FileWriter
,给定要写入的文件。 -
FileWriter(String fileName)
: 创建一个新的FileWriter
,给定要写入的文件的名称。 -
FileWriter(File file, boolean append)
: 创建一个新的FileWriter
,给定要写入的文件和是否追加到文件末尾。 -
FileWriter(String fileName, boolean append)
: 创建一个新的FileWriter
,给定要写入的文件的名称和是否追加到文件末尾。
FileWriter
方法摘要:
以下是一些 FileWriter
类的主要方法:
-
void write(int c)
: 写入单个字符。 -
void write(char[] cbuf)
: 将字符数组的所有字符写入文件。 -
void write(char[] cbuf, int off, int len)
: 将字符数组的一部分写入文件。 -
void write(String str)
: 将字符串写入文件。 -
void write(String str, int off, int len)
: 将字符串的一部分写入文件。 -
void flush()
: 刷新流。 -
void close()
: 关闭流并释放与之关联的所有资源。
简单使用例子:
以下是一个简单的例子,演示如何使用 FileWriter
将数据写入文件:
javaCopy code import java.io.FileWriter; import java.io.IOException; public class FileWriterExample { public static void main(String[] args) {String fileName = "output.txt"; try (FileWriter fileWriter = new FileWriter(fileName)) {// 写入单个字符fileWriter.write('A'); // 写入字符串String text = "Hello, FileWriter!";fileWriter.write(text); // 写入换行符fileWriter.write(System.lineSeparator()); // 写入字符数组的一部分char[] charArray = {'J', 'a', 'v', 'a'};fileWriter.write(charArray, 1, 2); } catch (IOException e) {e.printStackTrace();}} }
在这个例子中,我们使用 FileWriter
创建一个名为 output.txt
的文件,并写入单个字符、字符串、换行符和字符数组的一部分。请注意,我们使用了 try-with-resources 语句以确保在写入完成后关闭文件写入器。
应用场景
FileWriter
主要用于将字符数据写入文件,以下是一些应用场景和相应的代码实现:
1. 写入文本文件内容:
-
场景: 将文本内容写入文件。
-
代码实例:
javaCopy code try (FileWriter fileWriter = new FileWriter("output.txt")) {// 写入字符串String content = "This is some text to be written to the file.";fileWriter.write(content); } catch (IOException e) {e.printStackTrace(); }
2. 追加文本到文件末尾:
-
场景: 将文本追加到已有文件的末尾。
-
代码实例:
javaCopy code try (FileWriter fileWriter = new FileWriter("existingFile.txt", true)) {// 写入字符串String additionalContent = "This text will be appended to the end of the file.";fileWriter.write(additionalContent); } catch (IOException e) {e.printStackTrace(); }
3. 逐字符写入文件:
-
场景: 逐字符将数据写入文件。
-
代码实例:
javaCopy code try (FileWriter fileWriter = new FileWriter("output.txt")) {// 写入单个字符fileWriter.write('A'); // 写入字符数组的一部分char[] charArray = {'B', 'C', 'D'};fileWriter.write(charArray, 1, 2); } catch (IOException e) {e.printStackTrace(); }
4. 使用缓冲区提高性能:
-
场景: 使用
BufferedWriter
提高写入性能。 -
代码实例:
javaCopy code try (FileWriter fileWriter = new FileWriter("output.txt");BufferedWriter bufferedWriter = new BufferedWriter(fileWriter)) {// 使用缓冲区写入字符串String content = "This is some text with improved performance.";bufferedWriter.write(content); } catch (IOException e) {e.printStackTrace(); }
5. 异常处理:
-
场景: 在写入文件时处理可能的异常。
-
代码实例:
javaCopy code try (FileWriter fileWriter = new FileWriter("output.txt")) {// 写入字符串String content = "This is some text.";fileWriter.write(content); } catch (IOException e) {System.err.println("Error writing to the file: " + e.getMessage()); }
6. 使用 try-with-resources 自动关闭资源:
-
场景: 使用 try-with-resources 语句确保资源自动关闭。
-
代码实例:
javaCopy code try (FileWriter fileWriter = new FileWriter("output.txt")) {// 写入字符串String content = "This is some text.";fileWriter.write(content); } catch (IOException e) {e.printStackTrace(); }
这些例子展示了在不同场景下使用 FileWriter
的一些常见用法。在实际应用中,具体的使用方式取决于需求和文件写入的复杂性。
实战例子
以下是一个简单的项目实战例子,演示如何使用 FileWriter
将用户输入的文本保存到文件中。这个项目使用了基本的控制台输入和文件写入操作。
项目要求:
-
提示用户输入文本。
-
将用户输入的文本保存到名为
userInput.txt
的文件中。
项目实战代码:
javaCopy code import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class UserInputToFile { public static void main(String[] args) {try (Scanner scanner = new Scanner(System.in)) {// 提示用户输入文本System.out.print("Enter text to save to file: ");String userInput = scanner.nextLine(); // 使用 FileWriter 将文本保存到文件writeUserInputToFile(userInput);System.out.println("Text has been saved to userInput.txt."); } catch (IOException e) {e.printStackTrace();}} private static void writeUserInputToFile(String userInput) throws IOException {// 使用 FileWriter 写入文本到文件try (FileWriter fileWriter = new FileWriter("userInput.txt")) {fileWriter.write(userInput);}} }
在这个例子中,用户被提示输入文本,然后输入的文本会被保存到名为 userInput.txt
的文件中。在 writeUserInputToFile
方法中,我们使用了 FileWriter
来将文本写入文件。请注意,我们使用了 try-with-resources 语句,以确保在写入完成后关闭文件写入器。