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. jQuery 中对 CommonJs 的支持处理

    jQuery 中对 CommonJs提供了直接支持,可以在 CommonJs模块中直接引用 jQuery 对象,这是如何实现的呢? 从 factory 函数说起 说先看 jQuery 的主体函数定义, ...

  2. guava – Optional

    过多的使用null可能会导致大量的bugs,Google code 底层代码中,95%的集合类默认不接受null值.对null值,使用快速失败拒绝null比默认接受更好. 另外,null本身的含义很模 ...

  3. Excel 取得一定范围内最大的有值的行号

    dim iRow iRow = Range("A1000").End(xlUp).Row

  4. 《循序渐进》之简单的DHCP实验

    目的:初学,配置简单的DHCP试验. 试验步骤: 1:拓扑图 2:配置: Router>en Router#config t Enter configuration commands, one ...

  5. leetcode6:Zigzag Conversion@Python

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  6. 图解GitHub基本操作

    目录 一.注册并登陆到github网站 1.1.打开github网站首页(https://github.com/) 1.2.注册一个自己的github账号 1.3.登陆自己的github账号 二.创建 ...

  7. RabbitMQ学习: 介绍

    1. 介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue )协议的开源实现.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面都非 ...

  8. websql的添加和查询

    openDatabase 我们可以使用这样简单的一条语句,创建或打开一个本地的数据库对象 var db = openDatabase('testDB', '1.0', 'Test DB', 2 * 1 ...

  9. Redis配置文件参数说明

    Redis配置文件参数说明   1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时,Redis ...

  10. RabbitMQ 入门指南(Java)

    RabbitMQ是一个受欢迎的消息代理,通常用于应用程序之间或者程序的不同组件之间通过消息来进行集成.本文简单介绍了如何使用 RabbitMQ,假定你已经配置好了rabbitmq服务器. Rabbit ...