一、字节流
文件字节流如下:
//创建FileInputStream
FileInputStream fis=new FileInputStream("d:\\test.txt");//构造方法有三种 都带参数 这里选择用文件的路径
//读取字节
//读取单个字节---此方法的返回值是字节int型
// int count=0;
// while((count=fis.read())!=-1){
// System.out.println((char)count);
// }
//fis.close();
System.out.println("------------读取多个字节-------");
//读取多个字节
byte[] arr=new byte[1024];//指明长度 可任意
int num=0;
while((num=fis.read(arr))!=-1){
System.out.println(new String(arr,0,num));
}
fis.close();
}
//创建对象
FileOutputStream fos=new FileOutputStream("d:\\test1.txt");//这里可以选择带有append那个的构造函数 每次都会追加而不是覆盖 运行一次 就会写入一次
//写入字符
fos.write('m');
String str="i love you baby";
fos.write(str.getBytes());//处理字符串的方式
fos.close();
FileInputStream fis=new FileInputStream("d:\\test1.txt");
FileOutputStream fos=new FileOutputStream("d:\\test2.txt");
int count=0;
byte[] buf=new byte[1024];
while((count=fis.read(buf))!=-1){
fos.write(buf);
}
fis.close();
fos.close();
System.out.println("复制完毕");//即将d:\test1.txt中的内容复制到d:\test2.txt
二、字节输入缓冲流
三、对象流
- 序列化
public static void main(String[] args) throws Exception{
//序列化即写入
FileOutputStream fos=new FileOutputStream("d:\\stu.bin");
ObjectOutputStream oos=new ObjectOutputStream(fos);
Student student = new Student("张三",20);
oos.writeObject(student);
oos.close();
System.out.println("序列化完毕");
}
- 反序列化
public static void main(String[] args) throws Exception{
//反序列化 即从磁盘上读取信息到内存 并将其重构为对象
FileInputStream fis=new FileInputStream("d:\\stu.bin");
ObjectInputStream ois =new ObjectInputStream(fis);
Student s=(Student) ois.readObject();
ois.close();
System.out.println("反序列化完毕");
System.out.println(s);
}
四、字符流
五、字符缓冲流
六、打印流
七、转换流
- 实现内存中字符和磁盘上字节的转换
- 有疑问看API
八、文件类
九、Properties