File类字节输入、输出流

编程入门 行业动态 更新时间:2024-10-12 05:54:49

File类<a href=https://www.elefans.com/category/jswz/34/1769891.html style=字节输入、输出流"/>

File类字节输入、输出流

目录

1、字节输出流:FileOutputStream

2、 字节输入流:FileIntputStream

运行结果:

3、字节输出流与字节输入流联合使用:

结果:

4、 缓存流:

 小结:

5、对象流:

1.创建一个对象

2.创建一个FileOutputStream对象:

3、序列化结果为: 

 4、实现反序列化


1、字节输出流:FileOutputStream

 @Testpublic void test() throws Exception {FileOutputStream fileOutputStream = new FileOutputStream("F:\\111\\1.txt");String str="lwh";byte[] bytes = str.getBytes();fileOutputStream.write(bytes);fileOutputStream.close();}

运行结果:

2、 字节输入流:FileIntputStream

 @Testpublic void test2() throws Exception{FileInputStream os = new FileInputStream("F:\\111\\1.txt");byte[] bytes = new byte[3];int c=0;while ((c=os.read(bytes))!=-1){String str = new String(bytes,0,c);System.out.println(str);}

运行结果:

3、字节输出流与字节输入流联合使用:

package demo420.demo02;import org.junit.Test;import java.io.*;/*** @创建人 xiaoliu* @创建时间 2022/4/20* @描述*/
public class Demo01 {@Testpublic void test() throws IOException {FileInputStream fos = new FileInputStream("C:\\Users\\Administrator\\Desktop\\1.jpg");FileOutputStream os = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\2.jpg");byte[] bytes = new byte[5];int len;while ((len=fos.read(bytes))!=-1) {os.write(bytes,0,len);}fos.close();os.close();}
}

结果:

4、 缓存流:

BufferedInputStream 和BufferedOutputStream 这两个类分别是 InputStream和OutputStream 的子类,作为装饰器子类,使用它们可以防止每次读取/发送数据时进行实际的写操作,代表着使用缓冲区。

package demo420.demo04;import org.junit.Test;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;/*** @创建人 xiaoliu* @创建时间 2022/4/21* @描述*/
public class DemoBuffer {@Testpublic void test() throws Exception{FileInputStream is = new FileInputStream("C:\\Users\\Administrator\\Desktop\\111\\6.txt");FileOutputStream fos = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\111\\7.txt");BufferedOutputStream bos = new BufferedOutputStream(fos);int c=0;byte[] bytes = new byte[10];while ((c=is.read(bytes))!=-1){String str = new String(bytes,0,c);bos.write(str.getBytes());// byte[] bytes = str.getBytes();转成字节数组}}
}

加上 bos.flush 或 is.close 之后,数据才会被加载到文件中

bos.flush();  is.close();

 小结:

只有流刷新操作或流关闭操作之后,数据才会被加载

5、对象流:

java.io.ObjectOutputStream和java.io.ObjectInputStream这两个类可以方便的实现对象的序列化(Serialize)和反序列化(Deserialize)。

1.创建一个对象

package demo420.demo03;import java.io.Serializable;/*** @创建人 xiaoliu* @创建时间 2022/4/20* @描述*/
public class Hero implements Serializable {private String name;private int age;private String level;public Hero(String name, int age, String level) {this.name = name;this.age = age;this.level = level;}@Overridepublic String toString() {return "Hero{" +"name='" + name + '\'' +", age=" + age +", level='" + level + '\'' +'}';}
}

2.创建一个FileOutputStream对象:

  FileOutputStream is = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\demo.txt");ObjectOutputStream os = new ObjectOutputStream(is);Hero lwh = new Hero("lwh", 2, "3");os.writeObject(lwh);os.close();

3、序列化结果为: 

 4、实现反序列化

类要实现Serializable 接口

  FileInputStream is = new FileInputStream("C:\\Users\\Administrator\\Desktop\\demo.txt");ObjectInputStream objectInputStream = new ObjectInputStream(is);Object o = objectInputStream.readObject();System.out.println(o);is.close();

结果:

更多推荐

File类字节输入、输出流

本文发布于:2024-03-10 16:56:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1728524.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字节   File

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!