Java I/O流(I/O流,输出流)

继承关系图 

public void output() throws IOException {
        String filename = "e:/a.txt";
        String content = "hello";
        File file = new File(filename);
        OutputStream fos = null;

        if(!file.exists()) {
            if (file.createNewFile()) {
                System.out.println("文件创建成功");
            } else {
                System.out.println("文件创建失败");
            }
        } else {
            //true代表追加,默认为覆盖
            try {
                fos = new FileOutputStream(file, true);
                //写入一个字符
                //fos.write(int n);传入的n,如果为整数则是ascll码值,传入的是该ascll对应的字符,也可以直接传入一个字符
                fos.write(10);//整数
                fos.write('A');//字符
                //写入一个字符串,需要获取字符串的字节数组传入,
                //write源码中传入长度为数组长度
                fos.write(content.getBytes());
                //写入部分字节 fos.write(byte[] b, int off, int len);len不能超过字符串长度否则会报错,从off偏移量开始,传入len长度的字符串
                fos.write(content.getBytes(), 0, 2);
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (fos != null) {
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

        }
    }

FileWriter 文件字符输出流

FileWriter相关方法

new FileWriter(file/String);//覆盖模式,相当于流的指针在首端

new FileWriter(file/String, append);//追加模式,相当于流的指针在尾端

write(int n);//写入单个字符

write(char[]);//写入指定字符数组

write(char[], off, len)//写入数组中的指定部分

write(string);//写入整个字符串

write(String, off, len );//写入字符串的指定部分

相关API:

String.toCharArray();//将String转化成char[]
注意:FileWriter使用完后,必须要关闭或者flush(刷新),否则写入不到指定的文件

①如果文件不存在filewriter会创建该文件

②flush()刷新输出流,将内容写入文件,不会关闭输出流,当你想写入文件内容时可以使用该方法

③close()相当于刷新输出流+关闭输出流。

package com.edu.file;

import org.junit.Test;

import java.io.*;

/**
 * @author mtl121
 * @version 1.0
 */
public class FileWriter01 {
    public static void main(String[] args) {

    }

    public void createfile(String filename, File file) {
        if(!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    @Test
    public void Writer() {
        String content = "风雨之后能见彩虹";
        String filename = "e:/note.txt";
        char[] cs = {'a', 'b', 'k'};
        FileWriter fw = null;
        File file = new File(filename);
//        createfile(filename, file);
        try {
            fw = new FileWriter(file);
            fw.write('A');//字符
            fw.write(cs);// 字符数组
            fw.write(cs, 0, 2);//从0 开始长度为2 的字符
            fw.write(content);//字符串
            fw.write(content, 0 , 4);//从0 开始长度为4的字符串

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (fw != null) {
                    //必须close或者flush才能写入文件
                    fw.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meikesibondwell

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值