文件数据IO操作(一)

本文介绍了Java中字符流的基本概念及应用,通过示例演示了如何利用字符输入输出流进行文件读写操作,并实现了文本文件的复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件数据IO操作(一)

Reader和Writer

  1. Reader是字符输入流的父类
  2. Writer是字符输出的父类
  3. 字符流失以字符(char)为单位读写数据,一次处理一个Unicode
  4. 字符流的底层任然是基本的字节流

    1、使用Reader和Writer实现读写操作

package day03;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/**
 * OutPutStreamWriter
 * 
 * 字符输出流,以字符为单位写出数据
 * 
 * 字符流只用于读写字符数据
 * @author Administrator
 *
 */
public class OSWDemo {

    public static void main(String[] args) throws IOException {
        /**
         * 向文件中写出数据(写字符串)
         * 1、向文件中写数据(FileOutputStream)
         * 2、写的是文本数据()
         */
        FileOutputStream fos = new FileOutputStream("osw.txt");
        /**
         * OutputStreamWriter的特点是
         * 可以将给定的字符串按照特定的
         * 字符集转换为字节后写出
         * 使用构造方法:
         * OutputStreamWriter(OutputStreamStream out,String charsetName)
         * 
         */
        OutputStreamWriter osw=new OutputStreamWriter(fos,"utf-8");
        //直接写字符串就可以
        osw.write("没时间放假就是离开");
        osw.close();

        System.out.println("操作完毕!");


    }

}

2、使用Reader和Writer实现读写操作

package day03;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * InputStreamReader
 * 字符输入流
 * 用于读取字符数据的流
 * @author Administrator
 *
 */
public class ISRDemo {

    public static void main(String[] args) throws IOException {
         FileInputStream fis=new FileInputStream("osw.txt");


         InputStreamReader isr=new InputStreamReader(fis);

         int d=-1;
         while( (d=isr.read())!=-1){
             char c=(char)d;
             System.out.print(c);

         }
         isr.close();
    }

}

3、使用使用字符流复制文本文件

package day03;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
 * 使用字符流复制文本文件
 * @author Administrator
 *
 */
public class CopyDemo {

    public static void main(String[] args) throws IOException {

        FileInputStream fis=new FileInputStream("copy.docx");

        FileOutputStream fos=new FileOutputStream("copydemo.docx");

        InputStreamReader isr=new InputStreamReader(fis);

        OutputStreamWriter osr=new OutputStreamWriter(fos);

        int d=-1;
        while( (d=isr.read())!=-1){
            osr.write(d);

        }

        System.out.println("拷贝完毕!");
        isr.close();
        osr.close();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值