java IO流 之 输出流 OutputString()的使用
FileOutPutStream:子类,写出数据的通道
步骤:
1.获取目标文件
2.创建通道(如果原来没有目标文件,则会自动创建一个)
3.写入数据write()
4.释放资源
注意:
(1)如果目标文件不存在,那么会自己创建一个目标文件
(2)如果目标文件存在,先将里面的数据清空,再写入数据
(3)想在原有的数据上写入数据,则在创建通道的时候使用构造方法:
OutPutStream(Filefile,Booleanappend),boolean值为true则可以
(4)用write(inta)方法写入数据,虽然接收的是int,但实际上只有一个字节的数据
(操作的是低八位的,其他的全部丢掉)
//会自动导入一些包 importjava.io.File; importjava.io.FileOutputStream; importjava.io.IOException;
//方式一 publicstaticvoidwriteData()throwsIOException{ //1.找目标文件 Filefile=newFile("C:\\Users\\bigerf\\Desktop\\文件夹\\writeTest.java"); //2.创建一个通道 FileOutputStreamoutputStream=newFileOutputStream(file); //3.开始写入数据, inta=10;//int型4个字节 outputStream.write(a);//注意这里每次只能输出一个字节 outputStream.write('b');//char类型 outputStream.write(5); //0000-00000000-00000000-00011111-1111==511 intb=511;//大于八位(9位) outputStream.write(b);//实际结果255,但没有显示 intc=63;//小于八位(6位) outputStream.write(c);//乱码 //4.关闭资源 outputStream.close(); }
//方式二 publicstaticvoidwriteData2()throwsIOException{ //1.找目标文件 Filefile=newFile("C:\\Users\\bigerf\\Desktop\\文件夹\\writeTest2.java"); //2.创建一个通道,(如果不存在路径中的文件,则会在这一步创建的文件) //newFileOutputStream(file,true);/true表示在原来文本的基础上写入文本(反之则会先清空再写入) FileOutputStreamoutputStream=newFileOutputStream(file,true); //3.创键一个字节数组 Stringstr="helloword"; //将字符串变为字节数组 byte[]b=str.getBytes(); //4.写入数据 outputStream.write(b);//helloword //5.关闭资源 outputStream.close(); }
陌陌说:
输入流与输出流可以实现对文件的拷贝,不妨试着实现
(先将路径文件的数据拷贝写入到字节数组,再从字节数组写出道路径文件)