


读取一个字符返回
package com.char_stream;
import java.io.FileReader;
import java.io.Reader;
/*
FileInputStream FileOutputStream FileReader FileWriter(实现类)
c.FileReader:文件字符输入流。
--作用:以内存为基准,把磁盘文件的数据以字符的形式读入到内存。
简单来说,读取文本文件内容到内存中去。
--构造器:
public FileReader(File file):创建一个字符输入流与源文件对象接通。
public FileReader(String filePath):创建一个字符输入流与源文件路径接通。
--方法:
public int read():读取一个字符的编号返回!读取完毕返回-1
public int read(char[] buffer):读取一个字符数组,读取多少个字符就返回多少个数量,读取完毕返回
小结;
字符流一个一个字符的读取文本内容输出,可以解决中文读取输出乱码的问题。字符流很适合操作文本文件内容。
*/
public class FileReaderDemo01 {
public static void main(String[] args) throws Exception {
//目标:每次读取一个字符
//1.创建一个字符输入流管道与源文件接通
Reader fr = new FileReader("file-io-app\\src\\out04.txt"); //多态写法
// //2.读取一个字符(返回的是编号),没有可读返回-1
// int code = fr.read();
// System.out.print((char)code);
// int code1 = fr.read();
// System.out.print((char)code1);
//3.使用循环读取
int code = fr.read();
while ((code = fr.read())!=-1){
System.out.print((char) code); //文本自带换行,不要换行
}
}
}

读取一个字符数组返回

package com.char_stream;
import java.io.FileReader;
import java.io.Reader;
/*
FileInputStream FileOutputStream FileReader FileWriter(实现类)
c.FileReader:文件字符输入流。
--作用:以内存为基准,把磁盘文件的数据以字符的形式读入到内存。
简单来说,读取文本文件内容到内存中去。
--构造器:
public FileReader(File file):创建一个字符输入流与源文件对象接通。
public FileReader(String filePath):创建一个字符输入流与源文件路径接通。
--方法:
public int read():读取一个字符的编号返回!读取完毕返回-1
public int read(char[] buffer):读取一个字符数组,读取多少个字符就返回多少个数量,读取完毕返回
小结;
字符流一个一个字符的读取文本内容输出,可以解决中文读取输出乱码的问题。字符流很适合操作文本文件内容。
*/
public class FileReaderDemo02 {
public static void main(String[] args)throws Exception {
//1.创建以恶搞文件字符输入流与源文件接通
Reader fr = new FileReader("file-io-app\\src\\out04.txt"); //多态写法
//2.用循环,每次读取一个字符数组,进行读取
char[] buffer = new char[1024]; //不是1kb,而是1k个字符
int len; //记录每次读取多少个字符
while( (len = fr.read(buffer))!=-1){
String rs = new String(buffer,0,len);
System.out.print(rs);
}
}
}
文件字符输出流(写文本数据更方便)


package com.char_stream;
import java.io.*;
import java.nio.charset.StandardCharsets;
public class FileWriterDemo01 {
public static void main(String[] args) throws Exception{
//1.创建一个文件字符输出流管道与目标文件接通
Writer fw =new FileWriter("file-io-app\\src\\out05.txt"); //覆盖管道,每次启动会清空之前文件的数据
//2.写数据出去
//a.public void write(int a):写一个字符出去
fw.write(98);
fw.write('a');
fw.write('陈'); //字符流不会出问题
fw.write("\r\n");
//b.public void write(byte[] ,int pos ,int len):写一个字符串出去
fw.write("桀桀桀");
fw.write("\r\n");
//c.public void write (char[] buffer ):写一个字符数组出去
// char[] chars ="我打nmd打"; 错误写法
char[] chars ="我打nmd打".toCharArray(); //用toCharArray()将字符串转化为字符数组
fw.write(chars); //一般不用,直接写字符串就行,画蛇添足
fw.write("\r\n");
//d.public void write (String c ,int pos ,int len):写一个字符串的一部分出去
fw.write("我打nmd打",0,5);
fw.write("\r\n");
//e.public void write (char[] buffer ):写一个字符数组的一部分
fw.write(chars,0,2);
fw.write("\r\n");
//写数据一定要刷新数据,不然很可能丢失数据
//fw.flush();
fw.close(); //关闭包含刷新
}
}
//运行结果
ba陈
桀桀桀
我打nmd打
我打nmd
我打
字节流、字符流如何选择使用?
字节流适合做一切文件数据的拷贝(音视频,文本)字节流不适合读取中文内容输出
字符流适合做文本文件的操作(读,写)
版权声明:本文为qq_46759852原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。