目录
1、字节输出流:FileOutputStream
@Test
public 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
@Test
public 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 {
@Test
public 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、 缓存流:
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 {
@Test
public 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();转成字节数组
}
}
}
小结:
5、对象流:
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;
}
@Override
public 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、实现反序列化
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();