1,FileWriter类(字符输出流类)

|--用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter。

文件是否可用或是否可以被创建取决于底层平台。特别是某些平台一次只允许一个 FileWriter(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。

FileWriter 用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream

构造方法: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异常。

 package filewriter;  
  
import java.io.FileWriter;  
import java.io.IOException;  
  
public class Filewriter {  
  
    private static final String LINE_SEPARATOR = System.getProperty("line.separator");  
  
    /** 
     *  
     * @param args 
     * @throws IOException  
     */  
    public static void main(String[] args) throws IOException {  
        /** 
         * 创建一个可以往文件中写入字符数据的字符流输出流对象 
         * 创建时必须明确文件的目的地 
         * 如果文件不存在,这回自动创建。如果文件存在,则会覆盖。 
         * 当路径错误时会抛异常 
         *  
         * 当在创建时加入true参数,回实现对文件的续写。 
         */  
        FileWriter fw = new FileWriter("C:\\demo1.txt",false);  
        /** 
         * 调用该对象的write方法,向文件写入字符。 
         *  
         * 其实写入到了临时存储缓冲区中 
         */  
//      fw.write("hello \r\nworld!");//windows中的换行为\r\n    unix下为\r。  
        fw.write("aello"+LINE_SEPARATOR+"world!");  
        fw.write("hahaha");  
        /** 
         * 进行刷新,将字符写到目的地中。 
         */  
//      fw.flush();  
        /** 
         * 关闭流,关闭资源。在关闭前会调用flush方法 刷新缓冲区。关闭后在写的话,会抛IOException 
         */  
        fw.close();  
          
  
    }  
  
}  

关于FileWriter的的异常处理。

 package filewriter;  
  
import java.io.FileWriter;  
import java.io.IOException;  
  
public class IOExceptionDemo {  
  
    private static final String LINE_SEPARATOR = System.getProperty("line.separator");  
    public static void main(String[] args) {  
  
        FileWriter fw = null;  
        try {  
            fw = new FileWriter("k:\\Demo.txt", true);  
            fw.write("hello" + LINE_SEPARATOR + "world!");  
        } catch (Exception e) {  
            System.out.println(e.toString());  
        } finally {  
            if (fw != null)  
                try {  
                    fw.close();  
                } catch (IOException e) {  
                    throw new RuntimeException("关闭失败!");  
                }  
        }  
    }  
}  

2,FileReader类

|--用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。

FileReader 用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream

1,构造方法

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

2,主要方法

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

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

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

 package Filereader;  
  
import java.io.FileReader;  
import java.io.IOException;  
  
public class FileReaderDemo {  
  
    public static void main(String[] args) throws IOException {  
        /** 
         * 创建读取字符数据的流对象。 
         * 读取路径不正确时会抛 IOException 
         * 用以个读取流对象关联一个已存在文件。 
         */  
        FileReader fr = new FileReader("demo.txt");  
        /** 
         * 用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;  
        while((ch = fr.read()) != -1){  
            System.out.print((char)ch);  
        }  
        fr.close();  
        }  
}  

用FileReader  和 FileWriter 写的复制文本文件的小程序。

 package IOtest;  
  
import java.io.FileNotFoundException;  
import java.io.FileReader;  
import java.io.FileWriter;  
import java.io.IOException;  
  
public class TxtCopy {  
  
    /** 
     * 将C:\\的myHeart.txt copy 到 D:\\下 
     *  
     * 首先创建Reader读取数据数据的 读取流对象。 
     *  
     * @throws FileNotFoundException 
     */  
    public static void main(String[] args) {  
        FileReader fr = null;  
        FileWriter fw = null;  
        try {  
            fr = new FileReader("C:\\my.txt");  
            fw = new FileWriter("D:\\you.txt");  
            //读一个字符,写一个字符方法  
//          int ch = 0;  
//  
//          while ((ch = fr.read()) != -1) {  
//              fw.write(ch);  
//          }  
            char []buf = new char[1024];  
            int len = 0;  
            //读一个数组大小,写一个数组大小方法。  
            while((len = fr.read(buf)) != -1){  
                fw.write(buf, 0, len);                
            }  
              
        } catch (Exception e) {  
            System.out.println(e.toString());  
        } finally {  
            if (fr != null)  
                try {  
                    fr.close();  
                } catch (Exception e2) {  
                    throw new RuntimeException("关闭失败!");  
                }  
            if (fw != null)  
                try {  
                    fw.close();  
                } catch (IOException e) {  
                    throw new RuntimeException("关闭失败!");  
                }  
        }  
    }  
}  

java中的 FileWriter类 和 FileReader类的一些基本用法的更多相关文章

  1. java中只能有一个实例的类的创建

    Java中,如果我们创建一个类,想让这个类只有一个对象,那么我们可以 1:把该类的构造方法设计为private 2:在该类中定义一个static方法,在该方法中创建对象 package test; / ...

  2. java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)

    java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)

  3. java----FileInputStream类与FileReader类的区别(转)

    FileInputStream类与FileReader类的区别:两个类的构造函数的形式和参数都是相同的,参数为File对象或者表示路径的String,它们到底有何区别呢? Readers and W ...

  4. FileInputStream 类与 FileReader 类的区别

    FileInputStream 类与 FileReader 类的区别: 两个类的构造函数的形式和参数都是相同的,参数为 File 对象或者表示路径的 String ,它们到底有何区别呢? FileIn ...

  5. Java的 FileWriter类 和 FileReader类

    一.FileReader类1,构造方法:FileReader fr = new FileReader(String fileName);//使用带有指定文件的String参数的构造方法.创建该输入流对 ...

  6. 【JAVA中String、StringBuffer、StringBuilder类的使用】

    一.String类概述 1.String对象一旦创建就不能改变. 2.字符串常量池. 字符串常量池的特点:池中有则直接使用,池中没有则创建新的字符串常量. 例1: public class Strin ...

  7. Java中如何使封装自己的类,建立并使用自己的类库?

    转自:http://blog.csdn.net/luoweifu/article/details/7281494 随着自己的编程经历的积累会发现往往自己在一些项目中写的类在别的项目中也会有多次用到.你 ...

  8. Java中使用Observer接口和Observable类实践Observer观察者模式

    在Java中通过Observable类和Observer接口实现了观察者模式.实现Observer接口的对象是观察者,继承Observable的对象是被观察者. 1. 实现观察者模式 实现观察者模式非 ...

  9. Java中动态代理技术生成的类与原始类的区别 (转)

    用动态代理的时候,对它新生成的类长什么样子感到好奇.有幸通过一些资料消除了心里的疑惑. 平时工作使用的Spring框架里面有一个AOP(面向切面)的机制,只知道它是把类重新生成了一遍,在切面上加上了后 ...

随机推荐

  1. C程序与Lua脚本相互调用

    Lua脚本是一种可用于C程序开发/测试的工具,本篇介绍一下C程序与Lua脚本如何进行相互调用,更加详细的操作参见<Programing in Lua>.本文分为3个部分:1.Windows ...

  2. 在virtualbox(win7)下使用USB摄像头

    解决方法: 去https://www.virtualbox.org/wiki/Downloads下载VirtualBox 4.3.8 Oracle VM VirtualBox Extension Pa ...

  3. controller共享数据

    刚开始使用angularjs,能感受到他的强大,也在学习的途中遇到一些问题 一般我们在angularjs中共享数据使用DI的方法,具体代码如下: <script> angular.modu ...

  4. 如何在RichTextBox中改变多个字符串的颜色以及字体

    目标:传入目标富文本框以及需要查找的字符串,如果文本框中存在字符串,则改变其颜色和字体 可能因为这个问题比较简单,在网上找了很久,也没有一个好的方法.少有的一些方法,也只是改变第一个找到的字符串的颜色 ...

  5. android layout布局属性

    参考:http://blog.csdn.net/msmile_my/article/details/9018775 第一类:属性值 true或者 false           android:lay ...

  6. JAVA Socket 编程学习笔记(二)

    在上一篇中,使用了 java Socket+Tcp/IP  协议来实现应用程序或客户端--服务器间的实时双向通信,本篇中,将使用 UDP 协议来实现 Socket 的通信. 1. 关于UDP UDP协 ...

  7. 谈谈React Native环境安装中我遇到的坑

    谈谈React Native环境安装 这个坑把我困了好久,真的是接近崩溃的边缘...整理出来分享给大家,希望遇到跟我一样问题的小伙伴能尽快找到答案. 首先,这是在初始化App之后,react-nati ...

  8. css内容样式属性

    设置元素的最大高度.最小高度.最大宽度.最小宽度,用max-height.min-height.max-width.min-width. visibility:设置元素是否可见.visible和hid ...

  9. OC Runtime

    OC 是面向运行时的语言.Runtime就是系统在运行的时候的一些机制,其中最主要的是消息发送机制.OC语言与其他语言(如C语言)在函数(方法)的调用有很大的不同.C语言,函数的调用在编译的时候就已经 ...

  10. Docker学习过程中遇到的问题及解决方法

    1.重新安装Docker后,运行不起来 [root@zyt-test-14-53 ~]# docker infoCannot connect to the Docker daemon. Is the ...