java基础学习IO流之字节流 十一 -4
来源:互联网 发布:国泰安金融数据库 编辑:程序博客网 时间:2024/05/21 09:52
字节流;
FileOutputStream
FileInputStream
很多用法和字符流类似效果。。。
FileOutputStream
字节流简单写的操作;
package io2;import java.io.FileOutputStream;import java.io.IOException;/** * @author Angus *字节流 *FileOutputStream *FileInputStream * *写的方法 *void write(byte[] b) 将 b.length 个字节从指定 byte 数组写入此文件输出流中。 void write(byte[] b, int off, int len) 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 void write(int b) 将指定字节写入此文件输出流。 * */public class FileOutputStreamDemo {public static void main(String[] args) throws IOException {FileOutputStream fo = new FileOutputStream("a.txt");//FileOutputStream fo = new FileOutputStream("a.txt",true); //是否追加数据fo.write(97);fo.write(98);//fo.flush(); 字节流基本不用byte[] bys = {97,98,99,100,101};byte[] bys2 = {'a',98,99,100,101}; //这样也可以fo.write(bys);fo.write(bys2, 0, 2);fo.close();}}
FileInputStream
读取数据
package io2;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/** * @author Angus *字节流读取数据 * *read() 从此输入流中读取一个数据字节。 int read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 int read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个 */public class FileInputStreamDemo {public static void main(String[] args) throws IOException {//创建字节流对象FileInputStream fi = new FileInputStream("d.txt");//读取数据//方式一int by = 0;//while((by=fi.read()) != -1){//System.out.print((char)by); //这样每次一个字节读取的话,汉字会出现问题//}//方式二byte[] bys = new byte[1024];int len = 0;while((len = fi.read(bys)) != -1){System.out.print(new String(bys,0,len)); //但是这样也有部分问题1025出现汉字也有问题//建议字符流读取}//释放资源fi.close();}}
复制文件操作:
package io2;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/** * @author Angus *复制文件 *数据源;a.txt *目的地:e.txt */public class CopyFile {public static void main(String[] args) throws IOException {FileInputStream fis = new FileInputStream("a.txt");FileOutputStream fos = new FileOutputStream("e.txt");//读取//方式一//int by = 0;//while((by = fis.read()) != -1){//fos.write(by);//}//方式二byte[] bys = new byte[1024];int len = 0;while((len = fis.read(bys)) != -1){fos.write(bys,0,len);//如果不够1024会对出字节,需要限制写的大小}fos.close();fis.close();}}
字符流和字节流结合复制图片:
package io2;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;/** * @author Angus *复制图片 * *二进制流数据:图片,音频,视频 */public class CopyImage {public static void main(String[] args) throws IOException {//method();method2();}/** * 字节流读取 */private static void method2() throws IOException{FileInputStream fis = new FileInputStream("111.jpg");FileOutputStream fos = new FileOutputStream("333.jpg");byte[] bys = new byte[1024];int len = 0;while((len = fis.read(bys)) != -1){fos.write(bys, 0, len);}fos.close();fis.close();}/** * 用字符流操作 * @throws IOException */private static void method() throws IOException {FileReader fr = new FileReader("111.jpg");FileWriter fw = new FileWriter("222.jpg");int ch = 0;while((ch= fr.read()) != -1){fw.write(ch); //会发现复制的图片大小发生变化了,多数据了。//由于二进制数据合并的时候没有对应的数据,这样就会造成数据的丢失//二进制流只能用字节流操作}fw.close();fr.close();}}
最后总结:凡是可以记事本打开的字符流,其它字节流
最后附上JDK使用文档API 下载
1 0
- java基础学习IO流之字节流 十一 -4
- Java基础-IO学习之字节流
- java基础学习IO流之字符流 十一 -3
- java基础学习IO流之缓冲流 十一 -5
- java基础学习IO流之其它流 十一 -6
- java基础学习IO流之File类 十一 -1
- java基础学习IO流之递归 十一 -2
- Java基础----IO流之字节流
- Java基础--IO流之字节流
- java基础之字节流(IO流)
- java基础IO流之字节流
- Java基础18-IO之字节流
- Java基础之-IO中的字节流
- java深入学习十一之IO流
- [学习笔记]Java IO之字节流
- java学习之IO字节流
- [学习笔记]Java IO之字节流
- 黑马程序员《java基础总结(十一)》(IO流<字符流、字节流>)
- Struts2第一天
- Unity 中 阿基米德螺旋线 简易画法
- linux学习笔记
- oracle没有sum if函数,但是有替代的decode函数
- 【PythonWEB】LAMP微信公众平台开发准备流程
- java基础学习IO流之字节流 十一 -4
- Cordova 原生插件编写总结
- 【JavaEE】经典JAVA EE企业应用实战-读书笔记14
- 日期计算
- Android之ButterKnife在AndroidStudio中的使用步骤
- poj 1273 网络流板子题
- Freemarker实例教程
- 分布式一致性算法--Paxos
- 递归的基本原理