个人能建设网站吗,上海网站建设技术托管,百度投诉中心人工电话号码,顺德哪家做网站FileOutputStream 字节输出流 1. 概述2. 作用3. 书写步骤4. 构造方法5. 换行写6. 续写7. 注意事项 1. 概述
FileOutputStream 是 Java 中用于向文件写入字节数据的输出流类。它用于创建一个文件输出流#xff0c;该流用于将数据写入文件。 功能#xff1a;FileOutputStream … FileOutputStream 字节输出流 1. 概述2. 作用3. 书写步骤4. 构造方法5. 换行写6. 续写7. 注意事项 1. 概述
FileOutputStream 是 Java 中用于向文件写入字节数据的输出流类。它用于创建一个文件输出流该流用于将数据写入文件。 功能FileOutputStream 可以用来写入字节数据到文件中。它支持将字节、字节数组或部分字节数组写入到文件中。 创建流要使用 FileOutputStream需要指定要写入的文件路径。可以使用 new FileOutputStream(new File(文件路径)) 创建一个文件输出流对象。 写入数据通过调用 write(byte[] b)、write(int b)、write(byte[] b, int off, int len) 等方法可以将字节数据写入文件。 关闭流写入完成后需要调用 close() 方法关闭流释放资源。 异常处理在使用 FileOutputStream 时需要注意处理可能抛出的 IOException 异常以确保文件操作的可靠性。
2. 作用
FileOutputStream 的主要作用是将字节数据写入文件。 文件写入使用 FileOutputStream 可以将字节数据写入文件。可以写入字节、字节数组或部分字节数组实现对文件内容的修改或追加。 创建文件如果指定的文件不存在FileOutputStream 会自动创建该文件并将数据写入其中。如果文件已存在则会先清空文件内容再写入新的数据。 文件追加除了覆盖文件内容外FileOutputStream 还可以在已有文件的末尾追加新的字节数据而不会删除原有内容。这对于日志文件、数据文件等需要不断增加内容的场景非常有用。 二进制文件处理FileOutputStream 可以处理二进制文件如图像、音频、视频文件等。通过向文件写入原始的字节数据能够保持文件的二进制结构不变。 文件流关闭在写入完成后调用 close() 方法关闭 FileOutputStream 流确保文件操作的正确性和资源的释放。
3. 书写步骤 实现步骤 创建对象 写出数据 释放资源 FileOutputStream书写细节 ① 创建字节输出流对象 细节1:参数是字符串表示的路径或者File对象都是可以的 细节2:如果文件不存在会创建一个新的文件但是要保证父级路径是存在的 细节3:如果文件已经存在则会清空文件 ② 写数据 细节: write方法的参数是整数但是实际上写到本地文件中的是整数在ASCII上对应的字符 ③ 释放资源 细节:每次使用完流之后都要释放资源解除了资源的占用 代码示例 实现需求写出一段文字到本地文件。暂时不写中文 package text.IOStream.FileOutputStream.FileOutputStream01;import java.io.FileOutputStream;
import java.io.IOException;/*
字节输出流FileOutputStream
实现需求写出一段文字到本地文件。暂时不写中文实现步骤1.创建对象2.写出数据3.释放资源FileOutputStream书写细节
① 创建字节输出流对象细节1:参数是字符串表示的路径或者File对象都是可以的细节2:如果文件不存在会创建一个新的文件但是要保证父级路径是存在的细节3:如果文件已经存在则会清空文件
②写数据细节: write方法的参数是整数但是实际上写到本地文件中的是整数在ASCII上对应的字符
③ 释放资源细节:每次使用完流之后都要释放资源解除了资源的占用*/
public class FileOutputStream01 {public static void main(String[] args) throws IOException {//1.创建对象//写出 输出流 OutputStream//本地文件 FileFileOutputStream fos new FileOutputStream(D:\\JavaCode\\code\\codeText01\\src\\text\\IOStream\\FileOutputStream\\FileOutputStream01\\a.txt);// 2.写出数据fos.write(99);//3.释放资源fos.close();}
} 输出结果
4. 构造方法
FileOutputStream写数据的三种方式
方法名称说明void write(int b)一次写一个字节数据void write(byte[] b)一次写一个字节数组数据void write(byte[] b, int off, int len)一次写一个字节数组的部分数据
细节 1. void write(byte[lb,int off,int len):一次写一个字节数组的部分数据 参数一 数组 参数二起始索引 参数三个数 代码示例package text.IOStream.FileOutputStream.FileOutputStream02;import java.io.FileOutputStream;
import java.io.IOException;/*FileOutputStream写数据的三种方式| 方法名称 | 说明 |
| ----------------------------------- | ---------------------------- |
| void write(int b) | 一次写一个字节数据 |
| void write(byte[]b) | 一次写一个字节数组数据 |
| void write(byte[lb,int off,int len) | 一次写一个字节数组的部分数据 |细节1.void write(byte[lb,int off,int len):一次写一个字节数组的部分数据参数一数组参数二起始索引参数三个数*/
public class FileOutputStream02 {public static void main(String[] args) throws IOException {//1.void write(int b) :一次写一个字节数据System.out.println(1.void write(int b) :一次写一个字节数据);//创建对象FileOutputStream fos1 new FileOutputStream(D:\\JavaCode\\code\\codeText01\\src\\text\\IOStream\\FileOutputStream\\FileOutputStream02\\a.txt);//写出数据fos1.write(97);//释放资源fos1.close();System.out.println();//2.void write(byte[]b):一次写一个字节数组数据System.out.println(2.void write(byte[]b):一次写一个字节数组数据);//创建对象FileOutputStream fos2 new FileOutputStream(D:\\JavaCode\\code\\codeText01\\src\\text\\IOStream\\FileOutputStream\\FileOutputStream02\\b.txt);//写出数据byte[] bytes1 {97, 98, 99, 100, 101, 102};fos2.write(bytes1);//释放资源fos2.close();System.out.println();//3.void write(byte[lb,int off,int len):一次写一个字节数组的部分数据System.out.println(3.void write(byte[lb,int off,int len):一次写一个字节数组的部分数据);//创建对象FileOutputStream fos3 new FileOutputStream(D:\\JavaCode\\code\\codeText01\\src\\text\\IOStream\\FileOutputStream\\FileOutputStream02\\c.txt);//写出数据byte[] bytes2 {97, 98, 99, 100, 101, 102};fos3.write(bytes2, 0, 3);//释放资源fos3.close();}
} 输出结果 1.void write(int b) :一次写一个字节数据 2.void write(byte[]b):一次写一个字节数组数据 3.void write(byte[lb,int off,int len):一次写一个字节数组的部分数据
5. 换行写
换行写:再次写出一个换行符就可以了 windows: \r\n Linux: \n Mac: \r 细节: 在windows操作系统当中java对回车换行进行了优化。虽然完整的是\r\n但是我们写其中一个\r或者\n,java也可以实现换行因为java在底层会补全。 建议:不要省略还是写全了。 代码示例 在a.txt文件中写道 love 换行youpackage text.IOStream.FileOutputStream.FileOutputStream03;import java.io.FileOutputStream;
import java.io.IOException;/*换行写换行写:再次写出一个换行符就可以了windows:\r\nLinux:\nMac: \r细节:在windows操作系统当中java对回车换行进行了优化。虽然完整的是\r\n但是我们写其中一个\r或者\n,java也可以实现换行因为java在底层会补全。
建议:不要省略还是写全了。练习在a.txt文件中写道love 换行you*/
public class FileOutputStream03 {public static void main(String[] args) throws IOException {//创建对象FileOutputStream fos new FileOutputStream(D:\\JavaCode\\code\\codeText01\\src\\text\\IOStream\\FileOutputStream\\FileOutputStream03\\a.txt);//写出数据String str1 love;//将字符串转换成字节数组byte[] bytes1 str1.getBytes();fos.write(bytes1);String str2 \r\n;byte[] bytes2 str2.getBytes();fos.write(bytes2);String str3 you;byte[] bytes3 str3.getBytes();fos.write(bytes3);//释放资源fos.close();}
} 输出结果
6. 续写
续写:如果想要续写打开续写开关即可 开关位置:创建对象的第二个参数append public FileOutputStream(String name, boolean append) 默认false:表示关闭续写此时创建对象会清空文件手动传递true;表示打开续写此时创建对象不会清空文件 代码示例 package text.IOStream.FileOutputStream.FileOutputStream04;import java.io.FileOutputStream;
import java.io.IOException;/*续写
续写:
如果想要续写打开续写开关即可开关位置:创建对象的第二个参数appendpublic FileOutputStream(String name, boolean append)默认false:表示关闭续写此时创建对象会清空文件手动传递true;表示打开续写此时创建对象不会清空文件*/
public class FileOutputStream04 {public static void main(String[] args) throws IOException {//创建对象FileOutputStream fos new FileOutputStream(D:\\JavaCode\\code\\codeText01\\src\\text\\IOStream\\FileOutputStream\\FileOutputStream03\\a.txt, true);//写出数据String str XX;//将字符串转换成字节数组byte[] bytes str.getBytes();fos.write(bytes);//释放资源fos.close();}
} 输出结果
7. 注意事项 数据丢失使用 FileOutputStream 写入数据时如果数据未被刷新到磁盘或未调用 close 方法关闭流有可能造成数据丢失。因此在写入完数据后务必调用 flush 方法将数据刷新到磁盘并调用 close 方法关闭流。 异常处理在使用 FileOutputStream 进行文件写入操作时可能会抛出 IOException 异常因此需要在适当的地方进行异常处理以避免程序崩溃或数据丢失。 文件权限在写入文件时需要注意文件的权限问题。确保当前用户有足够的权限来进行文件写入操作否则会导致写入失败。 文件覆盖使用 FileOutputStream 写入文件时默认会覆盖原有文件内容。如果不希望覆盖文件内容可以通过构造函数中的参数来指定是否追加数据而不是覆盖。 数据编码FileOutputStream 写入的是字节数据如果需要写入字符数据或其他类型的数据需要进行适当的编码转换以确保数据的正确性。 资源释放在完成文件写入操作后一定要及时关闭 FileOutputStream 流释放资源避免资源泄露和程序性能问题。