java基础之字符流

目录

一:FileReader字符输入流

1:构造方法

2:读数据的方法

二:FileWriter字符输出流

1:构造方法

2:写数据的方法

三:例子

1:字符输入流例子

 2:字符输出流例子



一:FileReader字符输入流

1:构造方法

FileReader(File file) 
创建一个新的 FileReader ,给出 File读取。    
FileReader(String fileName) 
创建一个新的 FileReader ,给定要读取的文件的名称。  

2:读数据的方法

由于它继承于java.io.InputStreamReader 所以和InputStreamReader有一样的写数据的方法

public int read():一次只读一个字符

public int read(char[] cbuf):一次读取一个字符数组

二:FileWriter字符输出流

1:构造方法

FileWriter(File file) 
给一个File对象构造一个FileWriter对象。  
FileWriter(File file, boolean append) 
给一个File对象构造一个FileWriter对象。    
FileWriter(String fileName) 
构造一个给定文件名的FileWriter对象。  
FileWriter(String fileName, boolean append) 
构造一个FileWriter对象,给出一个带有布尔值的文件名,表示是否附加写入的数据。  
注意:如果后面为true表示追加到文件,否则就会覆盖原来文件的内容

2:写数据的方法

public void write(int c)一次写一个字符

public void write(char[] cbuf)一次写入一个字符数组

public void write(char[] cbuf,int off,int len)一次写入一个字符数组的一部分

public void write(String str)一次写入一个字符串

public void write(String str,int off,int len)一次写入一个字符串一部分

三:例子

1:字符输入流例子

package day31;

import java.io.FileReader;

public class Test3 {
    public static void main(String[] args) throws Exception{
        //创建字符输入流
        FileReader fr = new FileReader("a.txt");
        //一个字节一个字节读取数据
        int l = 0;
        while((l=fr.read())!=-1){
            System.out.print((char)l);//转为char型
        }
        //关闭资源
        fr.close();
    }
}
package day31;

import java.io.FileReader;

public class Test3 {
    public static void main(String[] args) throws Exception{
        //创建字符输入流
        FileReader fr = new FileReader("a.txt");
        //读取一个字符数组
        int l1=0;
        char[] c = new char[1024];
        while((l=fr.read(c))!=-1){
            String s = new String(c, 0, c.length);//字符数组转为字符串
            System.out.println(s);
        }
        //关闭资源
        fr.close();
    }
}

 如果不强转为char就会变成如图:

 2:字符输出流例子

package day31;

import java.io.FileWriter;

public class Test4 {
    public static void main(String[] args) throws Exception{
        //创建输出流对象传入的是文件名,也可以传入一个File对象
        FileWriter fw = new FileWriter("t.txt");
        //一次写入一个字符
        fw.write('a');
        fw.write(99);
        //一次写入一个字符数组
        char[] c={'a','a','2','9'};
        fw.write(c);
        //一次写入一个字符数组一部分
        fw.write(c,0,2);
        //一次写入一个字符串
        fw.write("helloword");
        //一次写入字符串一部分
        fw.write("hello world",0,5);
        //关闭资源
        fw.close();


    }
}

Guess you like

Origin blog.csdn.net/weixin_50691399/article/details/121114178