IO流的结构梳理②

    xiaoxiao2025-12-06  1

    1:数据操作流(操作基本类型数据的流) (1)可以操作基本类型的数据 (2)流对象名称 DataInputStream DataOutputStream 2:内存操作流 (1)有些时候我们操作完毕后,未必需要产生一个文件,就可以使用内存操作流。 (2)三种 A:ByteArrayInputStream,ByteArrayOutputStream B:CharArrayReader,CharArrayWriter C:StringReader,StringWriter 3:打印流 (1)字节打印流,字符打印流 (2)特点: A:只操作目的地,不操作数据源 B:可以操作任意类型的数据 C:如果启用了自动刷新,在调用println()方法的时候,能够换行并刷新 D:可以直接操作文件 问题:哪些流可以直接操作文件呢? 看API,如果其构造方法能够同时接收File和String类型的参数,一般都是可以直接操作文件的 (3)复制文本文件 BufferedReader br = new BufferedReader(new FileReader("a.txt")); PrintWriter pw = new PrintWriter(new FileWriter("b.txt"),true); String line = null; while((line=br.readLine())!=null) { pw.println(line); } pw.close(); br.close(); 4:标准输入输出流 (1)System类下面有这样的两个字段 in 标准输入流 out 标准输出流 (2)三种键盘录入方式 A:main方法的args接收参数 B:System.in通过BufferedReader进行包装 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); C:Scanner Scanner sc = new Scanner(System.in); (3)输出语句的原理和如何使用字符流输出数据 A:原理 System.out.println("helloworld"); PrintStream ps = System.out; ps.println("helloworld"); B:把System.out用字符缓冲流包装一下使用 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); 5:随机访问流(RandomAccessFile) (1)可以按照文件指针的位置写数据和读数据。 (2)案例: A:写数据 B:读数据 C:获取和改变文件指针的位置 6:合并流 (1)把多个输入流的数据写到一个输出流中。 (2)构造方法: A:SequenceInputStream(InputStream s1, InputStream s2) B:SequenceInputStream(Enumeration<? extends InputStream> e) 7:序列化流 (1)可以把对象写入文本文件或者在网络中传输 (2)如何实现序列化呢? 让被序列化的对象所属类实现序列化接口。 该接口是一个标记接口。没有功能需要实现。 (3)注意问题: 把数据写到文件后,在去修改类会产生一个问题。 如何解决该问题呢? 在类文件中,给出一个固定的序列化id值。 而且,这样也可以解决黄色警告线问题 8:Properties (1)是一个集合类,Hashtable的子类 (2)特有功能 A:public Object setProperty(String key,String value) B:public String getProperty(String key) C:public Set<String> stringPropertyNames() (3)和IO流结合的方法 把键值对形式的文本文件内容加载到集合中 public void load(Reader reader) public void load(InputStream inStream) 把集合中的数据存储到文本文件中 public void store(Writer writer,String comments) public void store(OutputStream out,String comments)
    转载请注明原文地址: https://ju.6miu.com/read-1304655.html
    最新回复(0)