欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 文件字符输入流FileReader 字符输出流FileWriter

程序员文章站 2024-03-18 18:33:22
...
import java.io.*;

public class Test {
    public static void main(String[] args) {
        Test.testFileReader("D:\\Test\\abc\\tt4.txt");
        Test.testFileWriter("糖醋酱板鸭","D:\\Test\\abc\\tt5.txt");
        Test.copyFile("D:\\Test\\abc\\tt5.txt","D:\\Test\\abc\\tt6.txt");

    }
    //文件字符输入流FileReader   读取文件的时候要保证文件已存在,否则出现异常
    public static void testFileReader(String inPath){
        try {
            FileReader fr=new FileReader(inPath);//创建文件字符输入流的对象

            char c[]=new char[20];//创建临时存放数据的数组

            int len=0;//定义一个输入流的读取长度

            while((len=fr.read(c))!=-1){
                System.out.println(new String(c,0,len));
            }
            fr.close();//关闭流

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    //写入问件时如果目录下有同名文件将被覆盖
    //文件输出流FileWriter   text输出的内容,outPath输出的文件
    public static void testFileWriter(String text,String outPath){
        try {
            FileWriter fw=new FileWriter(outPath);
            fw.write(text);//写到内存中
            fw.flush();//把内存数据刷到硬盘
            fw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    //字符流拷贝文件
    public static void copyFile(String inPath,String outPath){
        try {
            FileReader fr=new FileReader(inPath);
            char s[]=new char[20];
            int length;
            while(((length=fr.read(s))!=- 1)){
                System.out.println(new String(s,0,length));   
//可以逐个写入          fw.write(s,0,length);           
           }
//          直接读取数据fr.read(s);
            FileWriter fw=new FileWriter(outPath);
            fw.write(s);
            fw.flush();
            fr.close();
            fw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

相关标签: java