精华内容
下载资源
问答
  • Java的IO流

    2014-12-07 16:43:32
    1.概述 Java的IO通过java.io包下面的接口和类来实现的,在java...Java的IO流分为底层节点流和上层处理流,其中节点流用于和底层的物理节存储点直接关联——不同的物理节点获取节点流的方式可能存在差异,但程序可以把不

    1.概述

    Java的IO通过java.io包下面的接口和类来实现的,在java.io包下包括输入,输出两种IO流,每种输入和输出流又可以分为字节流和字符流两大类。其中字节流以字节为单位来处理输入输出操作,其中字符流以字符为单位来处理输入输出操作。

    Java的IO流分为底层节点流和上层处理流,其中节点流用于和底层的物理节存储点直接关联——不同的物理节点获取节点流的方式可能存在差异,但程序可以把不同的物理节点包装成统一的处理流,从而允许程序使用统一的输入,输出代码来读取不同的物理存储节点的资源。

    2.字节流

    2.1InputStream抽象类

    InputStream是所有字节流中输入流的抽象基类。

    2.1.1FileInputStream类

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    public class FileInputStreamTest {
    	public static void main(String[] args) {
    		try {
    			//创建一个字节输入流
    			FileInputStream fis=new FileInputStream("src/com/t/lavor_zl.txt");
    			byte[] buf=new byte[1024];//创建长度为1024的字节数组
    			int hasRead=0;//用来保存实际读取的字节数
    			/*read()方法还有两种重载:read()读取一个字节,返回读取的字节;
                            *read(char[] buf,int off,int len)从off位置开始读取len个字节
                            *并将它存储在buf中,返回实际读取字节的个数
                            */
    			while((hasRead=fis.read(buf))>0){
    				System.out.println(new String(buf,0,hasRead));
    			}
    			fis.close();//关闭输入流
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    		
    	}
    
    }

    PS:汉字占2个字符,若只读取了汉字的一个字符,会出现乱码。

    2.2OutputStream抽象类

    OutputStream是所有字节流中输出流的抽象基类。

    2.2.1FileOutputStream类

    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class FileOutputStreamTest {
    	public static void main(String[] args) {
    		try {
    			FileOutputStream fos=new FileOutputStream("src/com/t/lavor.txt");
    			byte[] buf=new byte[1024];
    			String str="lavor_zl";
    			buf=str.getBytes();//将字符串转换成字符数组
                            /*
                                              *write()方法还有两种重载:writer(int b)将指定的字节输出到输入流;
                            * writer(byte[] buf)将字符数组输出到输出流
                            */
    			fos.write(buf, 0, str.length());
    			fos.close();//关闭输出流
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}
    
    }

    3.字符流

    3.1Reader抽象类

    Reader是所有字符流中的输入流的抽象基类。

    3.1.1FileReader类

    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class FileReaderTest {
    	public static void main(String[] args) {
    		try {
    			//创建一个输入流
    			FileReader fr=new FileReader("src/com/t/lavor_zl.txt");
    			char[] buf=new char[1024];
    			int hasRead=0;
    			
    			/*read()方法还有两种重载:read()读取一个字符,返回读取的字符;
    			*read(char[] buf,int off,int len)从off位置开始读取len个字符
    			*并将它存储在buf中,返回实际读取字符的个数
    			*/
    			while((hasRead=fr.read(buf))>0){
    				System.out.println(new String(buf,0,hasRead));
    			}
    			
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    
    }

    3.2Writer抽象类

    Writer是所有字符流中的输出流的抽象基类。

    3.2.1FileWriter类

    import java.io.FileWriter;
    import java.io.IOException;
    
    public class FileWriterTest {
    	public static void main(String[] args) {
    		try {
    			FileWriter fw=new FileWriter("src/com/t/lavot.txt");
    			char[] buf=new char[]{'l','a','v','o','r'};
    			fw.write(127);//输入指定字符到输出流,参数是int型
    			fw.write(buf);//输入指定字符数组到输出流
    			fw.write(buf, 0, 3);//从指定字符数组中输出从0位置开始的3个字符到输出流
    			fw.write("lavor_zl");//输入指定字符串到输出流
    			fw.write("lavor_zl", 0, 3);//从指定字符串中输出从0位置开始的3个字符到输出流
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}
    
    }

    4.IO流体系

    分类 字节输入流 字节输出流 字符输入流 字符输出流
    抽象基类 InputStream
    OutputStream Reader Writer
    访问文件 FileInputStream FileOutputStream FileReader FileWriter
    访问数组 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter
    访问管道 PipedInputStream PipedOutputStream PipedReader PipedWriter
    访问字符串

    StringReader StringWriter
    缓冲流 BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter
    转换流

    InputStreamReader OutputStreamWriter
    对象流 ObjectInputStream ObjectOutputStream

    抽象基类 FilterInputStream FilterOutputStream FilterReader FilterWriter
    打印流
    PrintStream
    PrintWriter
    推回输入流 PushbackInputStream
    PushbackReader
    特殊流 DataInputStream DataOutputStream    
    红色代表抽象基类,无法直接创建实例;蓝色代表字节流,必须直接与指定的物理节点关联


    展开全文
  • java的IO流

    2013-08-02 10:17:30
    IO流里面有多种流,而本章主要讲java流式输入/输出原理,java流类分类,【输出/输入流;常见节点流和处理流;文件流;缓冲流;数据流;转换流,Print流;Object流】其实我们在理解IO流的概念时可以将它日常化...

    J2se之IO

     1,IO流的概念:

    IO流里面有多种流,而本章主要讲java流式的输入/输出原理,java流类的分类,【输出/输入流;常见的节点流和处理流;文件流;缓冲流;数据流;转换流,Print流;Object流】其实我们在理解IO流的概念时可以将它日常化,形象化,就是将流看成是我们的自来水的管子,对于读入可以是将这个流的管子伸向程序源将文件读取出来,写出时相当于在流这个管子头部安装了水龙头,将内容写入,当使用java中的IO包中的方法时就相当于装上水龙头。所以在理解IO流时java中流的概念可以看成水流来理解

    2.输入/输出流的分类

    (1).Java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能;可以从不同的角度对其进行分类:【*按数据流的方向不同可以分为输入流和输出流;*安处理数据单位不同可以分为字节流(安那种0101……输入输出)和字符流;*按照功能不同可以分为节点流和处理流;】

    (2).J2SDK所提供的所有流类型位于包java.io内都分别继承自一下四中抽象流类型。将不同的流当成不同的管道来看就比较容易理解,以后讲是输入输出流的时候是站在程序的角度来看待。

                字节流                            字符流

    输入流     InputStream                        Reader

    输出流     OutputStream                       Writer

     

    (3).在写入流里面的良好的习惯是在close之前先将缓存的区域提到目的地,就是调用flush()函数

    (4).在java程序中,对于数据的输入/输出操作以“流”(stream)方式进行;j2sdk提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或者输出数据。

    3.节点流和处理流

    (1).节点流为可以从一个特定的数据源(节点)读写数据(如:文件,内存)

    (2).处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。【处理流可以看成是在原来的管子或者原来的流之上再加上一层管子一个流,使得程序更健全,更能达到目的】

    (3).InputStream 继承从InputStream的流都是用于向程序中输入数据,且数据的单位为字节(8bit)

    (4).为什么ptop的软件毁硬盘,那是因为这些软件经常从硬盘里面读入和写出比较频繁

    (5).继承从OutputStream的流是用于程序中输入数据,且数据的单位为字节(8bit).

    (6).继承从Reader的流都是用于向程序中输入数据,且数据的单位为字符(16bit);两个两个字节读入,在中文中比较好的体现出来这个好处。与之对应的是Writer

    4.节点流类型

    (1).类型                字符流                  字节流

    File               FileReader             FileInputStream

                       FileWriter             FileOutputStream

    Memory Array         CharArrayReader        ByteArrayInputStream

                         CharArrayWriter        ByteArrayOutputStream

    Memory String        StringReader          

                        StringWriter

    Pipe                PipedReader                PipedInputStream

                        PipedWriter                PipedOutputStream

    (2).访问文件:FileInputStream和FileOutputStream分别继承自InputStream和OutputStream用于向文件中输入输出字节

    (3).FileInputStream和FileOutputStream类支持其父类InputStream和OutputStream所提供的数据读写方法;注意:在实例化FileInputStream和FileOutputStream流时要用try-catch语句以处理其可能抛出的FileNotFoundException。在读写数据时也要用try-catch语句以处理可能抛出的IOException。FileNotFoundException是IOException的子类【其中在FileOutputStream中当你new一个这种类型的文件时,系统会自动的帮你生成一个文件】

    (4).用FileReader的类可以将中文显示出来,因为它是两个两个字节个输出的。也就是一个一个字符往外读。而上面的是一个一个字节往外读的,所以不能将中文显示出来

    (5).FileWriter的类是将文件写入,当写入的时候没有这个文件,系统会自动创建这个文件

    5,缓冲流

    (1).缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时添加了一些新的方法。

    (2).缓冲输入流支持其父类的mark和reset方法。BufferedReader提供了readline方法用于读取一行字符串(以\r或\n分隔)。

    (3).BufferedWriter提供了newLine用于写一个行分隔符。对于输出的缓冲流,写出的数据会现在内存中缓存,使用flush方法将会使内存中的数据立刻写出。

    6.在关闭一个文件输出流时,最好用到flush方法,这样可以把缓冲区的数据输出来。其中了解到mark是标记输入流从第几个字符开始的,而那个reset函数是回归到那个标记符而已。

    7.流都是成对成对出现的

    8.转换流

    (1)InputStreamReader和OutputStreamWriter用与字节数据到字符数据之间的转换

    (2)InputstreamReader需要和InputStream”套接”。

    (3)OutputStreamWriter需要和outputStream”套接”。

    (4)转换流在构造时可以指定其编码集合

    9.数据流

    (1)DataInputStream和DataOutputStream分别继承自InputStream和OutputStream,它属于处理流,需要分别“套接”在InputStream和OutputStream类型的节点流上。

    (2)DataInputStream和DataOutputStream提供了可以存取与机器无关的java原始类型数据(如:int,double等)的方法。

    (3)DataInputStream和DataOutputStream的构造方法为:

    DataInputStream(InputStream in)

    DataOutputStream(OutputStream out)boolean类型的数只占一个字节

    (4)对于数据流先写的先读出来

    10.Print

    1.PrintWriter和PrintStream都属于输出流,分别针对与字符和字节

    2.PrintWriter和PrintStream提供了重载的Print ;Println方法用于多种数据类型的输出

    3.PrintWriter和PrintStream的输出操作不会抛出异常,用户通过检测错误状态获取错误信息

    4.PrintWriter和PrintStream有自动flush功能。

    11.object流(直接把一个类的属性输入到指定的文件中比如:T t=new T();writeObject(t))直接将Object写入或读出

    1.TestObjectIO.java

    2transient关键字,对于要序列化的值不存入硬盘。

    3.serializable接口(当你想对某个数据进行序列化那么必须定义serializable

    4.externalizable接口

    展开全文
  • java的io流以及文件复制的实现

    千次阅读 2019-05-18 18:17:32
    一.java的io流 java为了实现一个好的输入输出系统提供了大量的类,这些类都被封装到了java的io包中,我们可以通过import java.io.*进行引入. 在讲java的io流之前必须要明白java的File类,该类叫文件类,该类的可以理解...

    一.java的io流

    java为了实现一个好的输入输出系统提供了大量的类,这些类都被封装到了java的io包中,我们可以通过import java.io.*进行引入.

    在讲java的io流之前必须要明白java的File类,该类叫文件类,该类的可以理解为将一个实体文件封装成为了一个文件对象,从而可以通过调用相关的属性和方法对文件进行操作.将一个文件封装为一个File对象的代码如下:

    import java.io.File;
    
    //根据路径进行封装
    File file = new File("d:\\machi.txt");
    

    接下来我们具体讲一下java的io流,java在实现io操作时封装了大量的类,这些类可以从操作对象上可以分为两类:一类是对字节进行操作的Inputstream和OutputStream,另一类是对字节进行操作的Reader和Writer类.其中Inputstream和Reader是输入流,对文件进行读取操作,也就是把文件内容读进内存,而Outputstream和Writer是输出流,对文件进行写操作,也就是把内存中的内容写到文件中.

    只知道这些大家还是有很多疑惑,因为在我们看到的io流例子中,往往创建出来的对象不是上面四种类的对象,而是在上面四个类的基础上进行进一步的装饰,例如下面的代码:

    import java.io.*;
    
    File file = new File("d:\\machi.txt");
    BufferedReader br = new BufferedReader(new FileReader(file));

    让我们分析一下上面的代码,我们首先创建一个File对象,该对象是对D盘下machi.txt文件的封装,然后我们把一个指向file对象的FileReader对象赋给一个BufferedReader类来初始化一个BufferedReader对象.

    看上去好复杂,那这个BufferedReader对象又是什么呢,其实在io流中有几个特殊的类,他们分别是FilterInputStream,FilterOutputStream,FilterReader和FilterWriter,从名字可以看出来,他们与上面输入输出的四个类一一对应,那这四个类有什么用呢?其实对于他们四个,其实是四个装饰器,这用到了设计模式中装饰器的概念,装饰器主要的目的是在原有类的基础上增加新的功能,而这四个类的目的也是如此,他们有很多子类,比如我们上面看到的BufferReader,它可以防止每次读取时都得进行实际写操作,代表使用缓冲区,这可以大大加快读写的效率,当然,你在实际应用可以不使用这些装饰器类,但那样的效率就会很低.

     

    二.文件的复制

    了解完io流的基本内容后,我们写一个文件复制的小程序来练一下手.具体代码如下:

    package io;
    
    import java.io.*;
    
    public class FileCopy{
    	
        //注意:在使用io流时一定要注意异常的处理
    	public static void main(String[]args) throws IOException{
    		
    		File file = new File("e:\\machi.txt");
    		
    		File fileCopy = new File("d:\\machi-copy.txt");
    		
    		BufferedReader br = new BufferedReader(new FileReader(file));
    		
    		BufferedWriter bw = new BufferedWriter(new FileWriter(fileCopy));
    		
    		if(!(fileCopy.exists())){
    			
    			fileCopy.createNewFile();
    			
    		}
    		
    		String s;
    		
    		while((s = br.readLine()) != null){
    			
    			bw.write(s + "\r\n");
    			
    		
    			
    		}
    
            //最后一定要使用close方法关闭输入和输出流
    		br.close();
    		
    		bw.close();
    		
    	}
    }
    
    
    
    
    
    
    

    由于readLine是读取一行,但在最后并不会加入换行符,所以要手动添加换行的转义字符,一开始添加的是\n,但是添加完后并没有换行的效果,这就让人很头秃了,不过,没有什么能打败未来的程序员,经过我的不懈努力,最后查到在windows系统的文件中\r\n(回车符加换行符)才代表换行,感觉有点反人类,如果大家想了解不同系统文件中换行的字符,可以通过下面链接中的博文进行了解.

    https://blog.csdn.net/u010852680/article/details/77722531

    哈,终于写完了,今天又是元气满满的一天!!!!!!!!!!

    展开全文
  • 使用Java的IO流复制文件

    千次阅读 2019-05-27 22:06:00
    Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在 Java中把不同的输入/输出源(键盘、文件、网络连接等)抽象表述 为“流”(stream),通过流的方式允许Java程序使用相同的方式来访问...

    Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在 Java中把不同的输入/输出源(键盘、文件、网络连接等)抽象表述 为“流”(stream),通过流的方式允许Java程序使用相同的方式来访问不同的输入输出源。 stream是从起源(source)到接收(sink)的有序数据。Java把所有传统的流类型(类或抽象类)都放在java.io包中,用以实现输入输出功能。IO(输入/输出)流是比较抽象的,看不到明显的运行效果,但输入和输出是所有程序都必需的部分。使用输入机制,允许程序读取外部数据(包括来自磁盘、光盘等存储设备的数据、来自网络的数据)、用户输入数据;使用输出机制,允许程序记录运行状态,将程序数据输出到磁盘、光盘等存储设备中和网络其他设备中。Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入流、输出流两种IO流,每种输入、输出流又可分为字节流和字符流两大类。其中字节流以字节为单位来处理输入、输出操作,而字符流则以字符来处理输入、输出操作。除此之外Java的IO流使用了一种装饰器设计模式,它将IO流分成底层节点流和上层处理流,其中节点流用于和底层的物理存储节点直接关联(不同的物理节点获取节点流的方式可能存在一定的差异),但程序可以把不同的物理节点流包装成统一的处理流,从而允许程序使用统一的输入、输出代码来读取不同的物理存储节点的资源。
    下面是复制文件的代码:
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;

    public class TestDemo {
    public static void main(String[] args) throws IOException {

    	File source = new File("D:/测试文件/源文件.txt");
    	File dest  = new File("D:/测试文件/源文件2.txt");
    	
        CopyFile(source, dest);
    }
    
    public static void CopyFile(File source,File dest) throws IOException{
    	
    	FileInputStream in = new FileInputStream(source);
    	FileOutputStream out = new FileOutputStream(dest);
    	
    	byte[] bs = new byte[1024];
    	int count = 0;
    	
    	while ((count=in.read(bs, 0, bs.length))!=-1) {
    		out.write(bs,0,count);
    	}
    	in.close();
    	out.flush();
    	out.close();
    }
    

    }

    下面是结果图:
    在这里插入图片描述

    输入流和输出流是按照流的流向来分,都是从程序运行所在内存的角度来划分的。输入流:只可以读取数据,而不可以写入数据,由InputStream和 Reader作为基类;输出流:只可以写入数据,而不可以读取数据,由OutputStream和 Writer作为基类。

    展开全文
  • 摘要:Java IO 体系看起来类很多,感觉很...在设计 IO 相关类时,编写者也不是从同一个方面考虑,所以会给人一种很乱感觉,并且还有设计模式使用,更加难以使用这些 IO 类,所以特地对 Java IO 做一个总结。
  • 使用java的io流编写日志类

    万次阅读 2021-01-30 16:25:58
    import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Calendar; /** * Created by CXC on 2017/6/5. */ public class MyLogs { /** * @将错误信息输入到txt中 .
  • Java的IO流实现文件和文件夹的复制

    千次阅读 2020-07-14 16:50:56
    Java的IO流实现文件和文件夹的复制 1、使用文件流对单个文件进行复制 将某个文件复制到指定的路径下: //复制文件 public static void copy(File f1, String path) throws IOException { System.out.println("**...
  • 浅谈java的IO流及应用案例

    千次阅读 2017-05-23 17:55:39
    理解java的IO流java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在java中把不同的输入/输出源(键盘、文件、网络连接等)抽象表述为“流(stream)”通过流的方式允许java程序使用相同的...
  • Java的IO流总结分类

    2012-08-03 18:18:46
    Java的IO流总结分类  (2010-09-19 23:27:31) 转载▼ 标签:  java   io   reader   writer   inputstream   outputstream 分类: 学习相关_J2SE ...
  • 解决关于java的IO流进行文件拷贝时拒绝访问的问题 1.在学习java IO流的时候,想进行文件的自动拷贝功能,我的代码是在idea中编写的,编写没有报红,但是运行时却出现了java.io.FileNotFoundException: F:\出师表.txt...
  • java的IO流以及复制粘贴操作

    千次阅读 2015-12-14 13:59:12
    前天和昨天斌哥讲了java的IO流和汉字的输入输出。并且要我们完成文件的复制粘贴,同样要用到界面,重点的复制粘贴思想是把一个文件看成是一堆二进制数,一个个字节的操作。 在java中是用FileInputStream和...
  • java的IO流中,高8位,低8位是什么意思啊,在java的IO流中,高8位,低8位是什么意思啊,
  • Java的IO流—思维导图

    千次阅读 2016-03-02 20:21:01
    Java的IO流以及之间的继承关系
  • 编码问题 在IDEA中使用文件字符输入FileReader读取项目中文本文件时 由于IDEA默认设置为UTF-8编码 因此没有任何问题 但当读取Windows系统中创建文本文件时 由于Windows系统默认是GBK编码 就...java.io.Inp...
  • Java的IO流架构

    千次阅读 2014-12-26 15:41:53
    Java语言输入输出数据是以流的形式出现,并且Java提供了大量类来对流进行操作,从而实现了输入输出功能。 所谓是指同一台计算机或网络中不同计算机之间有序运动着数据序列,Java把这些不同来
  • java的io流中,什么时候应该在流关闭之前加flush,什么时候不用  我来答 分享 举报浏览 480 次 1个回答 #你心中的江湖# 金庸武侠剧中都有哪些传唱为经典的歌曲? 最佳答案 真×长门有希  2016-11-22 ...
  • 平时在控制台打印输出是调用print()方法和println()方法完成 ...java.io.PrintStream打印继承了OutputStream PrintStream为其它输出添加了功能 使它们能够方便地打印各种数据值表示形式 构造方...
  • Java的IO流解析

    千次阅读 2015-01-07 10:32:59
    一、的分类 按照流向分:输入、输出 ...Java的输入主要有InputStream和Reader作为基类,而输出则主要有OutputStream和Writer作为基类 字节和字符 字节和字符的区别很简单,他们的用法几乎完全一样
  • 一、效果展示 1、最初可以看到data/data目录下该项目只有一个cache文件夹和lib文件 第一次运行程序,用户名和密码皆为空。 当我们输入用户名和密码后,点击... ...java 的IO流 checkbox单选框 三、实现步骤 1、编...
  • 模拟一 这里模拟一个功能,将一个字符串转换为字节数组,然后通过字节流传进入字节数组,通过读方法得到字节数组之后通过读取得到字节数组再得到字符串输出 ...import java.io.ByteArrayInput...
  • Java的IO流与对象的序列化浅谈

    千次阅读 2016-01-16 13:54:38
    今天再次回顾了一些关于java IO流的知识。虽然以前会点IO方面编程,但是还是知其然不知其所以然。 首先上一张IO流的主要家族图吧。     该图给出了IO流的具体分类和各类之间继承关系。其中还给出...
  • 彻底解决java的io流问题.

    千次阅读 2008-08-19 00:04:00
    Java的io流,是一个很容易混淆的概念,里面涉及了很深层次的类继承,并且应用了著名的装饰模式,首先,我们来看下io流的具体类提及其应用和概念; 首先,流是什么?流是什么?流来自java.io包,形象的比喻——水流 ...
  • 概述: java.util.Properties继承于Hashtable 表示一个持久属性集 它使用键值结构存储数据 每个键及其对应值都是...Properties集合是唯一和IO流相结合集合 可以使用Properties集合中store()方法 将集合中临...
  • JAVA的IO流用法

    千次阅读 2012-02-05 15:33:39
    IO来说有4大对象,Reader(字符读取),Writer(字符输出),InputStream(字节读取)、OutputStream(字节输出)。用这些对象可以实现非常强大读取功能。 看一下他们之间继承关系  字节(处理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,120
精华内容 17,648
关键字:

java的io流

java 订阅