Java系列文章目录
补充内容 Windows通过SSH连接Linux
第一章 Linux基本命令的学习与Linux历史
文章目录
一、前言
- 学习文件IO流
- 学习文档的使用
- 具体实践可参考IO流与Base64实操
二、学习内容:
- File
- InputStream
- OutPutStream
- BufferedReader
- BufferedWriter
- FileReader
- FileWriter
三、问题描述
- 文件传输过程
- 文档的使用
四、解决方案:
4.1 File 的使用
参考文档:
文档搜索使用
参考代码:
- 创建文件夹
File file = new File("");
file.mkdirs();
- 文件输入流与输出流:
FileInputStream file1 = new FileInputStream("E:\\review_first_teacher\\edu-manager\\src\\main\\java\\org\\example\\test\\local\\student.txt");
FileOutputStream file2 = new FileOutputStream("E:\\review_first_teacher\\edu-manager\\src\\main\\java\\org\\example\\test\\local\\student.txt");
- 创建 FileInputStream 对象,打开指定路径下的 student.txt 文件,以便读取数据
- 创建 FileOutputStream 对象,打开相同路径下的 student.txt 文件,以便写入数据。注意,这会覆盖文件中的原内容。
- 读取文件内容写入数据到文件
int read = 0;
while(read!=-1)
{
read = file1.read();
System.out.println((char)read);
}
file2.write("早hello".getBytes());
file2.write("\n".getBytes());
4.2 防止乱码问题
步骤:
- 定义文件路径
- 创建 BufferedReader
- 读取文件内容
- 创建 BufferedWriter
- 写入新行和数据
String path = "E:\\review_first_teacher\\edu-manager\\src\\main\\java\\org\\example\\test\\local\\student.txt";
BufferedReader bufferedReader = new BufferedReader(new FileReader(path));
String str = null;
while((str = bufferedReader.readLine())!=null)
{
System.out.println(str);
}
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path,true));
String str = "hello";
bufferedWriter.newLine();
bufferedWriter.write(str);
bufferedWriter.flush();
五、总结:
5.1 学习总结:
- File
- 用途: 用于表示文件或目录的路径。
- 功能: 可以创建、删除和管理文件或目录。
常用方法:
exists(): 检查文件是否存在。
createNewFile(): 创建一个新文件。
delete(): 删除文件。
getName(): 获取文件名。
length(): 获取文件的大小(以字节为单位)。
- FileInputStream
- 用途: 用于从文件中读取字节数据。
- 功能: 可以读取文件内容,以便进行处理或显示。
常用方法:
read(): 读取一个字节。
read(byte[] b): 将多个字节读取到一个数组中。
- FileOutputStream
- 用途: 用于向文件写入字节数据。
- 功能: 可以向文件中写入内容,通常用于保存数据。
常用方法:
write(int b): 写入一个字节。
write(byte[] b): 将数组中的多个字节写入文件。
flush(): 刷新缓冲区,将数据写入文件。
close(): 关闭文件,释放资源。
总结
File: 用于文件和目录的操作。
FileInputStream: 从文件中读取数据。
FileOutputStream: 向文件中写入数据。
- BufferedReader
- 用途: 用于高效地读取文本文件的内容。
- 功能: 相较于直接使用 FileReader,BufferedReader 使用缓冲区来减少每次读取操作的开销,从而提高读取效率。
常用方法:
readLine(): 读取一行文本,返回字符串。
read(): 读取一个字符。
close(): 关闭流,释放资源。
- BufferedWriter
- 用途: 用于高效地写入文本文件内容。
- 功能: 相较于直接使用 FileWriter,BufferedWriter 使用缓冲区来批量写入数据,从而提高写入效率。
常用方法:
write(String s): 将字符串写入文件。
newLine(): 写入一个新行(换行符)。
flush(): 刷新缓冲区,确保所有数据都写入文件。
close(): 关闭流,释放资源。
总结
BufferedReader: 用于高效读取文本,适合需要逐行读取的场景。
BufferedWriter: 用于高效写入文本,适合需要逐行写入或大量数据的场景。
- FileReader
- 用途: 用于从文本文件中读取字符数据。
- 功能: 直接读取文件中的字符,适合处理文本文件。
常用方法:
read(): 读取一个字符,返回字符的整数值。
read(char[] cbuf): 读取多个字符到字符数组中。
close(): 关闭流,释放资源。
- FileWriter
- 用途: 用于向文本文件写入字符数据。
- 功能: 直接向文件中写入字符,适合处理文本文件。
常用方法:
write(int c): 写入一个字符。
write(String s): 写入一串字符(字符串)。
write(char[] cbuf): 将一个字符数组写入文件。
close(): 关闭流,释放资源。
总结
FileReader: 主要用于读取文本文件的字符。
FileWriter: 主要用于向文本文件写入字符。两者都非常简单,适合小规模的文件操作,但相对较低效,对于大文件推荐使用 BufferedReader 和 BufferedWriter。
(后续有遇到问题再添加)
声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。
标签:文件,Java,读取,字符,read,写入,write,IO,方法 From: https://blog.csdn.net/m0_66070037/article/details/141201663