281 字节流写数据的3种方式

36 篇文章 0 订阅

281 字节流写数据的3种方式

方法

说明

1

void write(int b)

将指定的字节写入此文件输出流,每次写1个字节数据

2

void write(byte[] b)

将b.length字节从指定的字节数组写入此文件输出流,每次写1个字节数组数据

3

void write(byte[] b,int off,int len)

将len长度的字节从指定的字节数组开始,从偏移量off开始写入此文件输出流,每次写1个字节数组的部分数据

b,字节

off,偏移量

len,长度

1个字节,

偏移量,索引的位置

·

【FileOutputStream的构造方法】

方法

说明

1

FileOutputStream(String name)

创建文件输出流,并以指定名称写入文件

2

FileOutputStream(File file)

创建文件输出流,并写入file对象指定的文件

1 package e281;

7 import java.io.File;

8 import java.io.FileNotFoundException;

9 import java.io.FileOutputStream;

10 import java.io.IOException;

11 import java.nio.charset.StandardCharsets;

13 public class FileOutputStreamDemo {

14     public static void main(String[] args) throws IOException {

15         FileOutputStream fos1 = new FileOutputStream("myIOStream\\e281-1.txt");

26         File file=new File("myIOStream\\e281-2.txt");

27         FileOutputStream fos2=new FileOutputStream(file);

31         FileOutputStream fos3=new FileOutputStream(new File("myIOStream\\e281-3.txt"));

32         FileOutputStream fos4=new FileOutputStream(new File("myIOStream\\e281-4.txt"));

33

34         fos1.write(97);//throws IOException

35         fos1.write(98);

36         fos1.write(99);

37 //        这是方式1,写到这里,运行一次,报错,手动添加指定的文件,再运行,通过

38 //        e281.txt里面写了abc

39

40         byte[] byteA1={97,98,99,100,101};

41         fos1.write(byteA1);//运行后e281.txt里面新增了abcde

42 //        这是方式,2

43

44         byte[] byteA2="two".getBytes();

45         fos2.write(byteA2);

46 //        这是方式3,将b.length字节从指定的字节数组写入此文件输出流的第2种方式

47 //        根据字符串得到字节数组

48

49         byte[] byteA3="three".getBytes();

50         fos3.write(byteA3,0,byteA3.length);//e281-3.txt新增了“three”

51         fos4.write(byteA3,1,3);

52 //          预期效果:e281-4.txt新增第1-(1+3-1)位的“three”,即hre

53 //          实际运行结果:e281-4.txt新增了“hre”

54

55         fos1.close();

56         fos2.close();

57         fos3.close();

58         fos4.close();

59 //        释放资源

60     }

61 }

--------------------------------------------------------------

2 /*

3 查看FileOutputStream的两个构造方法

4 1  FileOutputStream(String name)  创建文件输出流,并以指定名称写入文件

5 2  FileOutputStream(File file)    创建文件输出流,并写入file对象指定的文件

6  */

17 //        选中FileOutputStream按ctrl b查看源代码

18 //        public FileOutputStream(String name) throws FileNotFoundException {

19 //            this(name != null ? new File(name) : null, false);

20 //        }

21 //        由上可知,如果参数不是null,则FileOutputStream会创建一个File

22 //        已知"C:\\black"不是null,则系统会创建一个File,底层动作相当于

23 //        创建fos对象的同时,系统把指定的路径封装成了File对象

24 //        FileOutputStream fos = new FileOutputStream(new File("C:\\black"));

28 //        这里看下另一个构造方法FileOutputStream(File file)

29 //        这个构造方法的参数要一个File对象,因此先创建一个File对象,再创建这个构造方法

30 //        上面的1句其实可以缩写为1句,如下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值