• IO流(二)


    递归(理解) 

    	
    		方法定义中调用方法本身的现象
    

    2、递归的注意事项

    	
    		A:要有出口,否则就是死递归
    		B:次数不能过多,否则内存溢出
    		C:构造方法不能递归使用
    

    3、递归的案例

    	
    		A:递归求阶乘
    		B:兔子问题
    		C:递归输出指定目录下所有指定后缀名的文件绝对路径
    		D:递归删除带内容的目录(小心使用)
    

    IO流(掌握) 

    	
    	IO用于在设备间进行数据传输的操作	
    

    1、分类

    	
    	A:流向
    			输入流	读取数据
    			输出流	写出数据
    		B:数据类型
    			字节流	
    					字节输入流InputStream
    									FileInputStream
    									BufferedInputStream
    					字节输出流OutputStream
    									FileOutputStream
    									BufferedOutputStream
    			字符流
    					字符输入流Reader
    								FileReader
    								BufferedReader
    					字符输出流Writer
    								FileWriter
    								BufferedWriter
    		注意:
    			a:如果我们没有明确说明按照什么分,默认按照数据类型分。
    			b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流。
    

    2、FileOutputStream写出数据

    	
    		A:操作步骤
    			a:创建字节输出流对象
    				FileOutputStream构造方法
    					FileOutputStream(File file);
    					FileOutputStream(String Path);				
    			b:调用write()方法
    				public void write(int b)	//写入一个字节
    				public void write(byte[] b)	//写入一个字节数组
    				public void write(byte[] b,int off,int len)	//写入字节数组的一部分
    			c:释放资源
    			
    		B:代码体现:
    			FileOutputStream fos = new FileOutputStream("fos.txt");
    			
    			fos.write("hello".getBytes());
    			
    			fos.close();
    			
    		C:异常处理版代码
    			try {
    				// fos = new FileOutputStream("z:\fos4.txt");
    				fos = new FileOutputStream("fos4.txt");
    				fos.write("java".getBytes());
    			} catch (FileNotFoundException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			} finally {
    				// 如果fos不是null,才需要close()
    				if (fos != null) {
    					// 为了保证close()一定会执行,就放到这里了
    					try {
    						fos.close();
    					} catch (IOException e) {
    						e.printStackTrace();
    					}
    				}
    			}
    			
    		D:要注意的问题?
    			a:XxxOutputStream继承IOException(两种处理方式)
    			b:创建字节输出流对象做了几件事情?
    				1) 调用系统功能区创建文件
    				2) 创建fos对象
    				3) 把fos对象指向这个文件
    			c:为什么要close()?
    				关闭此文件流并释放与此有关的所有系统资源
    			d:如何实现数据的换行?
    				fos.write("
    ".getBytes());
    			e:如何实现数据的追加写入?
    				FileOutputStream fos = new FileOutputStream("fos.txt",true);
    

    3、FileInputStream读取数据

    	
    		A:操作步骤
    			a:创建字节输入流对象
    			b:调用read()方法
    			c:释放资源
    			
    		B:代码体现:
    			FileInputStream fis = new FileInputStream("fos.txt");
    			
    			//方式1
    			int by = 0;
    			while((by=fis.read())!=-1) {
    				System.out.print((char)by);
    			}
    			
    			//方式2
    			byte[] bys = new byte[1024];
    			int len = 0;
    			while((len=fis.read(bys))!=-1) {
    				System.out.print(new String(bys,0,len));
    			}
    			
    			fis.close();
    

    4、字节缓冲区流

    	
    		A:BufferedOutputStream
    			BufferedOutputStream bos = new BufferedOutputStream(
    				new FileOutputStream("bos.txt"));
    		B:BufferedInputStream
    

    5、案例(4种实现)

    	
    		A:复制文本文件
    		B:复制图片
    		C:复制视频
    
  • 相关阅读:
    安装pipenv
    ModuleNotFoundError: No module named 'pip._internal' , pip 无法下载软件 解决办法
    1.3用户列表 and 新闻列表
    1.2用户统计页面实现
    1.5发布新闻
    七牛云平台(存储图片)
    1.2头像设置功能
    1.4用户收藏展示
    1.3密码修改
    1.2首页刷新以及点击排行
  • 原文地址:https://www.cnblogs.com/zhanwang/p/7604488.html
Copyright © 2020-2023  润新知