Java_字节流-FileOutputStream文件输出流纪要

70 篇文章 0 订阅
package cn.file;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 文件输出流;
 * 
 * 今天抽空整理一篇关于Java文件输出流相关的小Demo;
 * 
 * 首先我们要了解什么是IO流;
 * 流即我们所说的流向;
 * 那么在计算机中的流向则是跟内存相关的数据流向有关;因此还做了分类;
 * 今天要分享的文件输出流就是其中的一种;
 * 
 * 在开始之前,做一下基础的填白;
 * 我们知道,在计算机中的数据文件,不管是视频(Video,vwdm...),图片(jpg,JPEG,png..),文本(txt,db...)都是以二进制数字的形式保存下来的;
 * 这些数据都是一个个的字节数据;所以在数据移动的时候其实就是在移动相应的二进制字节数据;
 * 那么接下来就开始我们对于流的认识;
 * 
 * 输入流: 在计算机中我们将流向内存的数据流动称为输入流;即input;
 * 输出流: 将流出内存的数据流动称为输出流;即output;
 * 
 * 对于流的类型也有对应的分类;主要分为两类:字节流,字符流;
 * 	字节流: 所谓的字节流就是指以字节为单位进行数据读写的流;
 * 	字符流: 而字符流是指以字符单位进行数据读写的流;
 * 
 * 那么在Java中我们常操作的主要是java.io下面的接口;
 * 还是和流的分类一样,这些接口按照层级划分,顶层的类主要有:
 * 字节流	字节输入流:InputStream;		字节输出流:OutputStream;
 * 字符流	字符输入流:Reader;			字符输出流:Writer;
 * 好
 * 还是和以往一样,先创建一个自己的测试类;
 * @author Administrator
 *
 */
public class FileTest {
	
	/**
	 * Java主函数|入口;
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		
		// path: 初始化一个地址;(\\标示\,用作转义)
		String path = "D:\\2020\\a.txt";
		
		/**
		 * String.getBatys()是String类提供的一个数组转化的方法;
		 * 作用:
		 * 	用来将字符串数据转化为数组用;
		 */
		byte[] bs = path.getBytes();
		
		/** 
		 * 实例化一个指定地址的File对象file;
		 */
		File file = new File(path);
		
		/** 
		 * 实例化一个指定File对象的文件输出流对象fosA;
		 * 需要注意:
		 * 	直接指定File对象获取到的这种输出流对象会抹除掉原有文件内的数据;
		 * 除非在构造中调用是否抹除的Boolean申明;才能保留原始文件内的数据,进行数据追加;
		 * 例如:
		 * 如果要数据追加: new FileOutputStream(file,true);
		 * 如果要数据抹除,重新装载数据: new FileOutputStream(file,false);  
		 */
		FileOutputStream fosA = new FileOutputStream(file); 
		
		/** 
		 * 实例化一个指定地址的文件输出流对象fosB;
		 * 这里的指定初始化也是一样的;
		 * 如果以直接指定地址的方式来获取文件输出流对象,也是会抹除掉原由文件的数据内容;
		 * 除非在构造中调用是否抹除的Boolean申明;才能保留原始文件内的数据,进行数据追加;
		 * 例如:
		 * 如果要数据追加: new FileOutputStream("D:\\2020\\b.txt",true);
		 * 如果要数据抹除,重新装载数据: new FileOutputStream("D:\\2020\\b.txt",false);  
		 */
		FileOutputStream fosB = new FileOutputStream("D:\\2020\\b.txt"); 
		
		/** 
		 * 字节数据写入;
		 * 
		 * 	1. 写入单个字节;
		 * 	2. 写入字节数组;
		 * 	3. 写入字节数组,从指定下标位off开始,写入指定的长度length;
		 * 
		 * 注: 
		 * 	\r表示: 回车符(return);
		 * 	\n标示: 换行符(newline);
		 * 	
		 * 	Windows系统里,每行结尾为回车+换行;所以是\r\n;
		 * 	Unix系统里,每行的结尾只有换行;即\n;
		 * 	Mac系统里,每行的结尾是回车;即\r;(从Mac OS开始同Linux系统统一)
		 */
		fosB.write('g');
		fosB.write("\r\n".getBytes());

		fosB.write(bs);
		fosB.write("\r\n".getBytes());

		fosB.write(bs,3,4);
		fosB.write("\r\n".getBytes());
		
		// 资源释放;
		fosA.close();
		fosB.close();
		
	}
	
}

文件输入流: 

        Java_字节流-FileInputStream文件输入流纪要_大雷-CSDN博客

Java字节流-文件输入/输出流的简单示例: 

        Java字节流-文件输入/输出流的简单示例_大雷-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值