データ操作ストリーム、メモリ操作ストリーム、印刷ストリーム、標準入力および出力ストリーム、ランダムアクセスストリーム、マージストリーム、シリアル化ストリーム、プロパティ、NIO(概要)

1.登陆注册IO版本案例
2.数据操作流(操作基本类数据流)
	  (1)可以操作基本类型的数据
	  (2)流对象名称
	      DataInputStream
	      DateOutputstream
3.内存操作流
	 (1)有些时候我们操作完毕后,未必需要产生一个文件,就可以使用内存操作流
	 (2)三种
	    A:ByteArrayInputStream  ,  ByteArrayOutputStream
	    B: CharArrayReader , CharArrayWriter
	    C: StringReader , StringWriter
4.打印流
		(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("a.txt"));
		    
		    String line = null;
		    while((line = br.readLine()) != null){
    
    
		      pw.Println(line);
		    }        
		            
		    pw.close;
		    br.close;
        
5.标准输入输出流
		(1)System类下面有这样的字段
					in 标准输入流
					out 标准输出流
		(2)三种键盘录入方式
		 A:main方法的args接受参数
		 B:System.in通过Bufferedreader进行包装
		      BufferedReader br = new BufferedReader(new InputStream(System.in());
		 C:Scanner
		   Scanner sc = 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));       
6.随机访问流
		(1)可以按照文件指针的位置写数据和读取数据
		(2)案例
		    A:写数据 
		    B:读数据
		    C:获取和改变指针对位置
7.合并流
		(1)把多个输入流的数据写入一个输出流种
		(2)构造方法
		 A:SequenceInputStream(InputStream s1,InputStream s2)
		 B:SequenceInputStream(Enumeration <? extends InputStream> e)
8.序列化流
		(1)可以把对象写入文本文文件或者网络中传输
		(2)如何实现序列化?
			    让被序列化对象实现序列化接口
			    该接口是一个标记接口。没有功能实现
		(3)注意问题
			 把数据写到文件后,去修该类会产生一个问题
			 在类文件中,给出一个固定的序列化id值
			 而且,这样也可以解决黄色警告线问题
		 (4)面试题
			 什么时候序列化
			 如何实现序列化
			 什么是反序列化
9.Properties
		(1)是一个集合类,Hashtable的子类
		(2)特有功能
		      public Object setProperty(String key,String value);
		      public String getProperty(String key);
		      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);
		(4)案例
		      A:根据给定的文件判断是否有键位lisi的如果有就改值为100
		      B:写一个程序实现控制猜数字游戏不能玩超过5
1.NIO
		(1)JDK4出现的NIO,对以前的IO操作进行了优化,提供了效率跟高的方式,
		        但是大部分我们看到的还是以前的IO流方式
		(3)JDK7dNIO的使用
			Path:路径
			Paths:通过一个静态方法返回一个路径
			Files提供了常见的方法
			复制文本文件
			把集合中的数据写到文件中

おすすめ

転載: blog.csdn.net/kaszxc/article/details/108859060