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

IO字符流API常见用法汇总(JAVA)

程序员文章站 2022-06-07 19:44:29
...

Don’t bb , show your code.
好了,废话不多说,下面我将用代码及注释给出我在学习JAVA IO字符流后,对它的理解及用法的总结,希望能对初学者们有点帮助。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.LineNumberReader;

public class 字符流 {
    private static final  String LINE_SEPARATOR=System.getProperty("line.separator");//固定系统换行操作
    
	public static void main(String[] args) throws IOException {
//		fileWritershow();
//		fileReadershow();
//		copytest();//复制文件另存
//		bufferedWritershow();
//		bufferedReadershow();
//		bufferCopytest();//缓冲区实现文件的重写
		LineNumberReadershow();

	}
	
/*
 * 使用装饰类LineNumberReader实现文档的按行遍历输出。
 */
private static void LineNumberReadershow() throws IOException {
	FileReader fr=new FileReader("bufferdemo.txt");
	LineNumberReader lnr=new LineNumberReader(fr);
	String line=null;
	//遍历输出
	while((line=lnr.readLine())!=null) {
		System.out.println(lnr.getLineNumber());//获取行号
		System.out.println(line);
	}
	lnr.close();
	}

/*
 * 缓冲区实现文件的重写
 */
private static void bufferCopytest() throws IOException {
	//读
	FileReader fr=new FileReader("bufferdemo.txt");
	BufferedReader br=new BufferedReader(fr);
	
	//写
	FileWriter fw= new FileWriter("copybufferdemo.txt");
	BufferedWriter bw=new BufferedWriter(fw);
	while(br.ready()) {
		bw.write(br.readLine());//按行写入
		bw.newLine();
	}
	
	br.close();
	bw.close();
	}

/*
 * 字符流的缓冲区方法操作演示(读取)
 */
private static void bufferedReadershow() throws IOException {
		FileReader fr=new FileReader("bufferdemo.txt");
		BufferedReader br=new BufferedReader(fr);//创建输出字符流缓冲区
		while(br.ready()) {
		System.out.println(br.readLine());
		}
		br.close();
	}

/*
 * 字符流的缓冲区方法操作演示(写入)
 */
private static void bufferedWritershow() throws IOException {
	FileWriter fw= new FileWriter("bufferdemo.txt");
	BufferedWriter bw=new BufferedWriter(fw);//创建缓冲区将输入字符流放入缓冲区中
	bw.write("缓冲区操作。\r\n写入成功!!");
	bw.newLine();
	bw.write("用newLine()实现换行。");
	bw.close();		
	}

/*
 * 将文件复制另存
 * 思路:文件读写操作
 */
private static void copytest() throws IOException {
    //读
	FileReader fr=new FileReader("demo.txt");//创建打开文件对象
	char[] buf=new char[1024];
	fr.read(buf);
	fr.close();
	//写
	FileWriter fw= new FileWriter("copyDemo.txt");
	fw.write(new String(buf));
	fw.close();//关闭流,关闭打开资源,在关闭前会调用flush
	fw=new FileWriter("copyDemo.txt",true);//续写
	fw.write(LINE_SEPARATOR+"复制成功!!");
	fw.close();
	}

/*
 * 将一些文字存储到硬盘文件中
 */
	private static void fileWritershow() throws IOException {
		FileWriter fw= new FileWriter("demo.txt");//创建选择操作文件对象,文件存在会被覆盖
		//写入数据
		fw.write("大王叫我来巡山!!");//数据已存储到临时存储缓冲区中
		fw.flush();//存储缓冲区刷新,数据存储到目标文件
		fw.write("\r\n来到山里转一转。"+LINE_SEPARATOR+"调用系统换行操作。");//\r\n  window中的换行操作
		fw.close();//关闭流,关闭打开资源,在关闭前会调用flush
		fw=new FileWriter("demo.txt",true);//续写
		fw.write(LINE_SEPARATOR+"对文件内容进行续写。");
		fw.close();
		
	}
	
/*
 * 读取文件输出 
 */
	private static void fileReadershow() throws IOException  {
		FileReader fr=new FileReader("demo.txt");//创建打开文件对象
		//用reader中的read方法读取字符
//		fr.read();//返回int,
//		int ch=0;
//		while(fr.read()!=-1) {
//			ch=fr.read();
//			System.out.print((char)ch);
//		}//方法一 , 不用于输出中文
//方法二 ,读数组read(char[])
		char[] buf=new char[42];
		int num=fr.read(buf);//将读取到的字符串存储到数组中
		System.out.println(num+"::"+new String(buf));
		
	}

}
相关标签: java IO 字符流