栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IO-文件字符流-Java

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IO-文件字符流-Java

1.文件字符流

文件字节流可以处理所有的文件,如果处理的是本文文件,可以使用文件字符流,它以字符为单位进行操作。

文件字符输入流

import java.io.*;
public class FileReaderDemo {
	public static void main(String[] args) {
		FileReader frd = null;
		try {
			//创建文件字符输入流对象
			frd = new FileReader("d:/a.txt");
			int temp = 0 ; 
			//返回Unicode值,一次读一个字符
			while((temp=frd.read())!=-1){
				System.out.println((char)temp);
			}
			
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(frd != null) {
					frd.close();
				}
			}catch(Exception e) {
				e.printStackTrace();
			}
		}
	}
}

文件字符输出流

import java.io.*;
public class FileWriterDemo {
	public static void main(String[] args) {
		FileWriter fw = null;
		FileWriter fw1 = null;
		try {
			//创建字符输出流
			fw = new FileWriter("d:/b.txt");
			fw.write("hello worldrn"); //r表示回车   n表示换行
			fw.write("I am happy"); //堆积处理
			fw.flush();
			//如果重新创建一个FileWriter操作同一个文件,如果没有是否追加的指令,默认覆盖
			fw1 = new FileWriter("d:/b.txt",true);
			fw1.write("hhh");
			fw1.flush();
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(fw!=null) {
					fw.close();
				}
				if(fw1!=null) {
					fw.close();
				}
			}catch(Exception e) {
				e.printStackTrace();
			}
		}
	}
}
2.字符流实现文本文件的拷贝处理
import java.io.*;
public class FileCopyTools2 {
	public static void main(String[] args) {
		FileReader fr = null;
		FileWriter fw = null;
		try {
			fr = new FileReader("d:/a.txt");
			fw = new FileWriter("d:/c.txt");
            //char类型不是Byte类型,只能指定固定长度,没有估计函数
			char[] buffer = new char[1024];
			int temp=0;
			while((temp=fr.read(buffer))!=-1) {
				fw.write(buffer,0,temp);
			}
			fw.flush();
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(fr!=null) {
					fr.close();
				}
				if(fw!=null) {
					fw.close();
				}
			}catch(Exception e) {
				e.printStackTrace();
			}
		}
	}
	
}
3.字符缓冲流

BufferedReader/BufferedWriter增加了缓存机制,大大提高了读写文本文件的效率。

字符输入缓冲流

BufferedReader是针对字符输入流的缓冲流对象,提供了更方便的按行读取的方法:readLine(); 在使用字符流读取文本文件时,我们可以使用该方法以行为单位进行读取。

import java.io.*;
public class BufferedReaderDemo {
	public static void main(String[] args) {
		FileReader fr = null;
		BufferedReader br = null;
		try {
			fr = new FileReader("d:/b.txt");
			br = new BufferedReader(fr);
			String temp = "";
			while((temp=br.readLine())!=null) {  //注意这里字符串用null,如果是int用-1
				System.out.println(temp);
			}
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(br!=null) {
					br.close();
				}
				if(fr!=null) {
					fr.close();
				}
			}catch(Exception e) {
				e.printStackTrace();
			}
		}
	}
}

字符输出缓冲流

BufferedWriter是针对字符输出流的缓冲流对象,在字符输出缓冲流中可以使用newline();方法实现换行处理。

import java.io.*;
public class BufferedWriterDemo {
	public static void main(String[] args) {
		FileWriter fw = null;
		BufferedWriter bw = null;
		try {
			fw = new FileWriter("d:/e.txt");
			bw = new BufferedWriter(fw);
			bw.write("hello world");
			bw.write("hhhh");
			bw.newline();
			bw.write("i love you");
			bw.flush();
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(bw !=null) {
					bw.close();
				}
				if(fw !=null) {
					fw.close();
				}
			}catch(Exception e) {
				e.printStackTrace();
			}
		}
	}
}
4.字符缓冲流实现文本文件的拷贝
"d:/e.txt","d:/ee.txt");
	}
	
	public static void copyFile(String src,String des) {
		BufferedReader br = null;
		BufferedWriter bw = null;
		try {
			br = new BufferedReader(new FileReader(src));
			bw = new BufferedWriter(new FileWriter(des));
			String temp = "";
			while((temp = br.readLine())!=null) {
				bw.write(temp);
				bw.newline();  //实现换行处理
			}
			bw.flush();
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(br!=null) {
					br.close();
				}
				
				if(bw!=null) {
					bw.close();
				}
			}catch(Exception e) {
				e.printStackTrace();
			}
		}
	}

}
5.字符缓冲流为文件中的内容添加行号
import java.io.*;
public class LineNumberDemo {
	public static void main(String[] args) {
		BufferedReader br = null;
		BufferedWriter bw = null;
		try {
			br = new BufferedReader(new FileReader("d:/e.txt"));
			bw = new BufferedWriter(new FileWriter("d:/eee.txt"));
			String temp = "";
			int i=1;
			while((temp = br.readLine())!=null) {
				bw.write(i+","+temp);
				bw.newline();
				i++;
			}
			bw.flush();
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				if(br!=null) {
					br.close();
				}
				if(bw !=null) {
					bw.close();
				}
			}catch(Exception e) {
				e.printStackTrace();
			}
		}
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643563.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号