黑马程序员————————IO流 FileWriter类 和 FileReader类的一些基本用法


  1. <pre name="code" class="java" style="color: rgb(102, 102, 102); line-height: 21.6000003814697px;">----<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
     
  2.                                                                          1.FileWriter类(字符输出流类)

    构造方法:FileWriter fw = new FileWriter(String fileName);//创建字符输出流类对象和已存在的文件相关联,如果文件不存在的话,则创建改文件。如果改目标文件存在,创建新文件覆盖原来的文件。

                                                 例如:FileWriter fw = new FileWriter("C:\\demo.txt");

                      FileWriter fw = new FileWriter(String fileName,boolean append);//创建字符输出流类对象和已存在的文件相关联,并设置该该流对文件的操作是否为续写。

                                                例如:FileWriter fw = new FileWriter("C:\\demo.txt",ture); //表示在fw对文件再次写入时,会在该文件的结尾续写,并不会覆盖掉。

    主要方法: void write(String str)   //写入字符串。当执行完此方法后,字符数据还并没有写入到目的文件中去。此时字符数据会保存在缓冲区中。

                                                            此时在使用刷新方法就可以使数据保存到目的文件中去。

                      viod flush()                //刷新该流中的缓冲。将缓冲区中的字符数据保存到目的文件中去。

                      viod close()               //关闭此流。在关闭前会先刷新此流的缓冲区。在关闭后,再写入或者刷新的话,会抛IOException

  3. package com.my.test;
    
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class FileWriterDemo {
    		/**
    		 * 
    		 * @param args
    		 */
    		public static void main(String[] args){
    			/**
    			 * 创建一个可以往文件中写入字符数据的字符流输出流对象
    			 * 创建时必须明确文件的目的地
    			 * 如果文件不存在,这回自动创建。如果文件存在,则会覆盖。
    			 * 当路径错误时会抛异常
    			 * 
    			 * 当在创建时加入true参数,回实现对文件的续写。
    			 */
    			FileWriter fw = null;
    			try {
    				fw = new FileWriter("C:\\demo.txt");
    				/**
    				 * 调用该对象的write方法,向文件写入字符。
    				 * 
    				 * 其实写入到了临时存储缓冲区中
    				 */
    //				fw.write("hello \r\nworld!");//windows中的换行为\r\n    unix下为\r。
    				fw.write("aelloworld!");
    				fw.write("hahaha");
    				/**
    				 * 进行刷新,将字符写到目的地中。
    				 */
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		
    //			fw.flush();
    			/**
    			 * 关闭流,关闭资源。在关闭前会调用flush方法 刷新缓冲区。关闭后在写的话,会抛IOException
    			 */
    			try {
    				if (fw != null) {
    					fw.close();
    				}			
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    	}

  4. <h3 style="color: rgb(102, 102, 102); margin: 0px; padding: 0px; font-family: Arial; line-height: 26px; background-color: rgb(247, 247, 247);">                                                            2.<span style="font-size: 12px;">FileReader类</span><span style="font-size: 12px;">(字符输入流类)</span></h3>
  5. 1.构造方法

    FileReader fr = new FileReader(String fileName);//使用带有指定文件的String参数的构造方法。创建该输入流对象。并关联源文件。

    2,主要方法

    int read(); // 读取单个字符。返回作为整数读取的字符,如果已达到流末尾,则返回 -1。

    int read(char []cbuf);//将字符读入数组。返回读取的字符数。如果已经到达尾部,则返回-1。

    void close();//关闭此流对象。释放与之关联的所有资源。

    <pre name="code" class="java">package com.my.test;
    
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    
    public class FileReaderDemo { 
    		public static void main(String[] args) {
    			/**
    			 * 创建读取字符数据的流对象。
    			 * 读取路径不正确时会抛 IOException
    			 * 用以个读取流对象关联一个已存在文件。
    			 */
            	FileReader fr = null;	
    			try {
    				fr = new FileReader("demo.txt");
    			} catch (FileNotFoundException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			/**
    			 * 用Reader中的read方法读取字符。
    			 */
    			/*int ch = fr.read();
    			System.out.print((char)ch);
    			int ch1 = fr.read();
    			System.out.print((char)ch1);
    			int ch2 = fr.read();
    			System.out.print((char)ch2);*/
    			int ch = 0;
    			try {
    				while((ch = fr.read()) != -1){
    					System.out.print((char)ch);
    				}
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}finally{
    				if (fr != null) {
    					try {
    						fr.close();
    					} catch (IOException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    				}
    			}
    			
    			}	
    }
    


     
       


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值