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. mount什么意思

    root@Home-Cloud:/mnt# dfFilesystem           1K-blocks      Used Available Use% Mounted on/dev/root  ...

  2. 单片网络接口芯片W5100的原理与应用

    随着计算机网络技术的发展,作为全球最大计算机网络——I n t e r ac t已成为当今信息社会重要的基础信息设施.在工业测控.智能仪器.智能家庭等领域,大量应用嵌入式设备接人 I n t e r ...

  3. C++设计模式-Proxy代理模式

    Proxy代理模式 作用:为其他对象提供一种代理以控制对这个对象的访问. 代理的种类: 如果按照使用目的来划分,代理有以下几种: 远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代 ...

  4. webpack 往右一点之 “模块这个东西”

    为什么会考虑模块? webapp,页面初始化和使用过程中会加载越来越多的javascript代码 --- 给前端的开发流程和资源组织带来挑战 ---前端需要模块系统 模块系统是干什么的呢? 模块的定义 ...

  5. 九、数据库——sql server 2008导入excel

    昨天分配给我一个活,让我手动录入新闻网页的数据,包括每条新闻的标题.时间和链接. 一开始,就是按照最原始的手动录入的方法,一条条的录入.发现这简直就是在浪费时间,于是就想了一种新方法. 1.将网页中的 ...

  6. 简单的java socket 示例

    一.搭建服务器端 a).创建ServerSocket对象绑定监听端口. b).通过accept()方法监听客户端的请求. c).建立连接后,通过输入输出流读取客户端发送的请求信息. d).通过输出流向 ...

  7. java 配置文件读取

    1.getResourceAsStream Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path ...

  8. 习课的redis配置记录

    <!-- redis begin --> <dependency> <groupId>redis.clients</groupId> <artif ...

  9. ruby on rails 在centos 7下的安装配置

    因为想安装最新版本,所以通过编译安装. 安装前准备工具和库文件: sudo yum install gcc gcc-c++ openssl-devel readline-devel gdbm-deve ...

  10. C语言PIC16 serial bootloader和C#语言bootloader PC端串口通信程序

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新PIC16 Boot ...