java基础复习(二十)

  1. 什么是序列流?
  • 序列流可以把多个字节输入流整合成一个,从序列流中读取数据时,将从被整合的第一个流开始读,读完一个之后继续读第二个,以此类推。
  1. 使用方式
  • 整合两个:SequenceInputStream;
FileInputStream fis1 = new FileInputStream("a.txt");
FileInputStream fis2 = new FileInputStream("b.txt");
SequenceInputStream sis = new SequenceInputStream(fis1,fis2);
//之后直接读序列流就行,然后 sis.close();会将构造方法中传入的流对象也关掉。

3.序列流整合多个SequenceInputStream(emuration)

内存输出流

什么是内存输出流

  • 该输出流可以向内存中写数据,把内存当作一个缓冲区,写出之后可以一次性获取出所有数据

使用方式

  • 创建对象 :new ByteArrayOutputStream()
  • 写出数据
  • 获取数据
/*
FileInputStream 读取中文的时候出现了乱码
*/
FileInputStream fis = new FileInputStream("1.txt");
byte[] arr = new byte[3];
int len;
while((len = fis.read(arr)) != -1){
    System.out.println("");
}

此类实现了一个输出流,其中的数据 被写入一个byte数组。缓冲区会随着数据的不断写出而自动增长。可以使用toByteArray();

ByteArrayOutputStream

FileInputStream fis = new FileInputStream("a.txt");
ByteArrayOutputStream baos = new ByteArrayOutputStream();  //在内存 中创建一个可以增长的内存数组
int b;
while(( b = fis.read()) != -1){
    baos.write(b);//将读取到的数据逐个写入内存中
}
byte[] arr = baos.toByteArray();//将缓冲区的全部获取出来,赋值给数组。
System.out.println(new String(arr));
fis.close();

流是和内存和硬盘的沟通,如果只在内存之中那是没有啥问题的。

内存输出流面试题

定义一个文件输入流,read(byte[] b)方法,将a.txt文件中的内容打印出来(byte[]数组大小限制为5)

/*

*/

IO流

1.随机访问流概述

  • RandomAccessFile 父类是Object

seek在指定位置设置指针

对象操作流

写出--序列化

读取--反序列化

什么是对象操作流:

  • 该流可以将一个对象写出,或者读取一个对象到程序中,也就是执行了序列化和反序列化的操作
 rson p1 = new Person("zhansgan" , 23);
ObjectOutputStream oos = new ObjectOutpuStream(new FileOutputStream("1.txt"));

Person对象要实现序列化implements Seriziable

保证程序读取的时候能够进行反序列化

读档

ObjectInputStream ois = new ObjectinputStream(new FileInputStream("e.txt"));

Person p1 = (Person) ois.readObeject(p1);
System.out.println(p1);

ois.close();

一次一次写,到写到集合里面,再把容器写出去。

serialVersionUUId 版本号 不写的话会随机 ,先存档,再读档

数据输入输出流

DataInputStream

DataOutputStream

翻译不过来是没有问题的 只要读取的出来就ok

打印流的概述和特点:

PrintStream 和PrintWriter分别是打印的字节流和字符流

只操作数据目的

标准输入流和标准输出流

  • System.in是InputStream的标准输入流,默认可以从键盘输入字符和字节数组
  • System.out是PrintStream标准输出流,默认可以向Console中输出字符和字节数据

修改标准输出流

  • 修改输入流System.setIn(InputStream)
  • 修改输出流System.setOut(PrintStream)
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
System.out.println(line);
br.close();

Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
System.out.println(line);

Properties的概述和Map集合的使用

java.util.Properties 作为配置文件 键值对形式存储

Properties pr = new Properties();

特殊功能

配置文件IO流 ,配置文件被读取到

牛批 我终于知道配置文件了

内存和硬盘

本文链接:

https://heyzen.club/index.php/J/269.html
1 + 6 =
快来做第一个评论的人吧~