java中的 FileWriter类 和 FileReader类的一些基本用法

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异常。

[java] view plain copy

  1. package filewriter;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. public class Filewriter {
  5. private static final String LINE_SEPARATOR = System.getProperty("line.separator");
  6. /**
  7. *
  8. * @param args
  9. * @throws IOException
  10. */
  11. public static void main(String[] args) throws IOException {
  12. /**
  13. * 创建一个可以往文件中写入字符数据的字符流输出流对象
  14. * 创建时必须明确文件的目的地
  15. * 如果文件不存在,这回自动创建。如果文件存在,则会覆盖。
  16. * 当路径错误时会抛异常
  17. *
  18. * 当在创建时加入true参数,回实现对文件的续写。
  19. */
  20. FileWriter fw = new FileWriter("C:\\demo1.txt",false);
  21. /**
  22. * 调用该对象的write方法,向文件写入字符。
  23. *
  24. * 其实写入到了临时存储缓冲区中
  25. */
  26. //      fw.write("hello \r\nworld!");//windows中的换行为\r\n    unix下为\r。
  27. fw.write("aello"+LINE_SEPARATOR+"world!");
  28. fw.write("hahaha");
  29. /**
  30. * 进行刷新,将字符写到目的地中。
  31. */
  32. //      fw.flush();
  33. /**
  34. * 关闭流,关闭资源。在关闭前会调用flush方法 刷新缓冲区。关闭后在写的话,会抛IOException
  35. */
  36. fw.close();
  37. }
  38. }

关于FileWriter的的异常处理。

[java] view plain copy

  1. package filewriter;
  2. import java.io.FileWriter;
  3. import java.io.IOException;
  4. public class IOExceptionDemo {
  5. private static final String LINE_SEPARATOR = System.getProperty("line.separator");
  6. public static void main(String[] args) {
  7. FileWriter fw = null;
  8. try {
  9. fw = new FileWriter("k:\\Demo.txt", true);
  10. fw.write("hello" + LINE_SEPARATOR + "world!");
  11. } catch (Exception e) {
  12. System.out.println(e.toString());
  13. } finally {
  14. if (fw != null)
  15. try {
  16. fw.close();
  17. } catch (IOException e) {
  18. throw new RuntimeException("关闭失败!");
  19. }
  20. }
  21. }
  22. }

2,FileReader类

1,构造方法

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

2,主要方法

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

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

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

[java] view plain copy

  1. package Filereader;
  2. import java.io.FileReader;
  3. import java.io.IOException;
  4. public class FileReaderDemo {
  5. public static void main(String[] args) throws IOException {
  6. /**
  7. * 创建读取字符数据的流对象。
  8. * 读取路径不正确时会抛 IOException
  9. * 用以个读取流对象关联一个已存在文件。
  10. */
  11. FileReader fr = new FileReader("demo.txt");
  12. /**
  13. * 用Reader中的read方法读取字符。
  14. */
  15. /*int ch = fr.read();
  16. System.out.print((char)ch);
  17. int ch1 = fr.read();
  18. System.out.print((char)ch1);
  19. int ch2 = fr.read();
  20. System.out.print((char)ch2);*/
  21. int ch = 0;
  22. while((ch = fr.read()) != -1){
  23. System.out.print((char)ch);
  24. }
  25. fr.close();
  26. }
  27. }

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

[java] view plain copy

    1. package IOtest;
    2. import java.io.FileNotFoundException;
    3. import java.io.FileReader;
    4. import java.io.FileWriter;
    5. import java.io.IOException;
    6. public class TxtCopy {
    7. /**
    8. * 将C:\\的myHeart.txt copy 到 D:\\下
    9. *
    10. * 首先创建Reader读取数据数据的 读取流对象。
    11. *
    12. * @throws FileNotFoundException
    13. */
    14. public static void main(String[] args) {
    15. FileReader fr = null;
    16. FileWriter fw = null;
    17. try {
    18. fr = new FileReader("C:\\my.txt");
    19. fw = new FileWriter("D:\\you.txt");
    20. //读一个字符,写一个字符方法
    21. //          int ch = 0;
    22. //
    23. //          while ((ch = fr.read()) != -1) {
    24. //              fw.write(ch);
    25. //          }
    26. char []buf = new char[1024];
    27. int len = 0;
    28. //读一个数组大小,写一个数组大小方法。
    29. while((len = fr.read(buf)) != -1){
    30. fw.write(buf, 0, len);
    31. }
    32. } catch (Exception e) {
    33. System.out.println(e.toString());
    34. } finally {
    35. if (fr != null)
    36. try {
    37. fr.close();
    38. } catch (Exception e2) {
    39. throw new RuntimeException("关闭失败!");
    40. }
    41. if (fw != null)
    42. try {
    43. fw.close();
    44. } catch (IOException e) {
    45. throw new RuntimeException("关闭失败!");
    46. }
    47. }
    48. }
    49. }
时间: 2024-10-08 10:59:57

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

java中的 FileWriter类 和 FileReader类

java中的 FileWriter类 和 FileReader类的一些基本用法 1,FileWriter类(字符输出流类) 构造方法:FileWriter fw = new FileWriter(String fileName);//创建字符输出流类对象和已存在的文件相关联.文件不存在的话,并创建. 如:FileWriter fw = new FileWriter("C:\\demo.txt"); FileWriter fw = new FileWriter(String fileNa

全面解释java中StringBuilder、StringBuffer、String类之间的关系

http://www.jb51.net/article/33398.htm String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象,StringBuffer和StringBuilder类功能基本相似 1. String 类  String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不

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

转自:http://blog.csdn.net/luoweifu/article/details/7281494 随着自己的编程经历的积累会发现往往自己在一些项目中写的类在别的项目中也会有多次用到.你肯定会想:如何自己的写的一些常用的类积累起来,生成自己的类库?如果是这样的话,很庆幸,你遇到通道中人了,因为我也是这样做的.下面就介绍一下我是怎么做的吧 一.先来明白一下关于classpath和path的概念 path是java中用来进行编译和运行的程序所在的路径,而classpath是类所在的路径

java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类Feild)

class Person { public String name;//定义实例Feild public static int eyeNum;//定义类Feild } public class PersonTest { public static void main(String[] args) { System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); } } 运行: [[email protected] java

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

Java中,如果我们创建一个类,想让这个类只有一个对象,那么我们可以 1:把该类的构造方法设计为private 2:在该类中定义一个static方法,在该方法中创建对象 package test; /* * 有时候我们希望一个类在任何时候都只有一个实例,这时候可以把该类设计为单例模式. * 要将一个类设计为单例模式,需要: * 1:把该类的构造方法的访问修饰符生命为private * 2:然后在该类中定义一个static方法,在该方法中创建类的对象 * * */ public class Sin

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

FileInputStream类与FileReader类的区别:两个类的构造函数的形式和参数都是相同的,参数为File对象或者表示路径的String,它们到底有何区别呢?? Readers and Writers work only on line based character data, so plain text files.For anything else, you MUST use Streams.? JDK5 API:FileInputStream is meant for rea

FileInputStream 类与 FileReader 类的区别

FileInputStream 类与 FileReader 类的区别: 两个类的构造函数的形式和参数都是相同的,参数为 File 对象或者表示路径的 String ,它们到底有何区别呢? FileInputStream :以字节流方式读取: FileReader :把文件转换为字符流读入: InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别.用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组. Rea

Java的 FileWriter类 和 FileReader类

一.FileReader类1,构造方法:FileReader fr = new FileReader(String fileName);//使用带有指定文件的String参数的构造方法.创建该输入流对象.并关联源文件.2,主要方法:int read(); // 读取单个字符,返回一个int型变量代表读取到的字符,如果已达到流末尾,则返回 -1.int read(char []cbuf);//将字符读入数组.返回读取的字符数.如果已经到达尾部,则返回-1.void close();//关闭此流对象

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

一.String类概述 1.String对象一旦创建就不能改变. 2.字符串常量池. 字符串常量池的特点:池中有则直接使用,池中没有则创建新的字符串常量. 例1: 1 public class StringDemo 2 { 3 public static void main(String args[]) 4 { 5 StringDemo1(); 6 7 } 8 public static void StringDemo1() 9 { 10 String str1="abcd"; 11