- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                               IO  流
●IO流用来处理数据之间的传输
●java对数据的操作时通过流的方式
●java用于操作流的对象都在IO包中
●流按操作数据分为两种:字节流与字符流
●流按方向分为:输入流,输出流
字符流的由来其实就是  字节流读取数据源后,不直接操作,而是先查指定的编码表,获取对应的文字,再对这个文字操作,也就是等于  字节流+编码表
输入输出流逝相对于内存设备与外设
IO流常用基类
 
字节流的抽象基类
InputStream
OutputStream
字符流的抽象基类
Reader
Writer
注:这些体系的子类都以父类为后缀,而子类名的前缀就是该对象的功能
 
具体用法
 
FileWriter
语法:
 
      FileWriter file=new FileWriter(“文件名”);
注意:
①创建一个可以往文件中写入字符数据的字符输出流对象;
②既然是往一个文件中写入文字数据,那么在创建对象时,就必须明确该文件(用于存储数据的目的地);
③如果文件不存在,则会自动创建,如果文件存在,则会被覆盖
④如果对构造函数文件名后加入“true”,则可以续写,即:
       FileWriter file=new FileWriter(“文件名”,true)
2)调用Writer里的write(String)方法,将数据写入输出流,即:
      file.write();
 
3)刷新流,让数据立即写入文件,即:
     file.flush();
 
操作结束一定要关闭流,不要占用资源,否则同时也给数据带来安全隐患:
      file.close();
 
异常处理:
  (a)流的异常处理时,在try外部声明类类型变量引用,在try内部初始化
 
FileWriter file=null;
		try {
			 file = new FileWriter(1.txt);
		(b)finally部分单独处理
} catch (Exception e) {
			System.out.println(e.toString());
		} finally {
			if (file != null) {// 这个必须加上!只有当顶层文件不为空时 才需要关闭
				try {
					file.close();
				} catch (IOException e) {
					throw new RuntimeException(关闭流失败!);
				}
			}
		}		
FileReader
语法:
      FileReader file=new FileReader(“文件名”);    
 注:在创建读取流时必须确定文件存在,即用一个读取流关联一个已存在的文件
用Reader里的read();方法读进输入流
           int a=file.read();	
           System.out.print(a);		注:需要注意的是,这里读取出来的是字符,read()方法返回的都是 int类型,而并非文件里的内容,因为硬盘存储数据都是二进制的,例如文件里的是”a”,那么读取出来在控制台显示的就是”97”!
所以如果想要读取字符,那么就需要强转,如下:
         int a=file.read();	
			System.out.print((char)a);			
重要!:读取流如果读到末尾,则显示-1!
3)由于一次只能读取一个字符,所以需要用到循环:
  int a;
	while((a=file.read())!=-1){
			System.out.print((char)a);	
	}		
 
第二种读取方法:使用读取数组的方法read(char[] )  
char[] ch=new char[10];//数组长度可以自己定义
file.read(ch);//将读到的字符存入数组中
String s=new String(ch);//将char数组转换为String字符串System.out.print(s);//打印输出字符串		
也可以简化为
char[] ch=new char[10];//数组长度可以自己定义
file.read(ch);//将读到的字符存入数组中
System.out.print(new String(ch));//打印输出字符串		
如果数组定义的长度不够,则如下:
		char[] ch=new char[2];//数组长度可以自己定义但是最好定义为“1024”
		int length=0;//定义长度
		while((length=file.read(ch))!=-1){
		
                
原创力文档
                        

文档评论(0)