//字符流
//Reader与Writer 工具类
public class RWTest {
//字符数组缓冲复制文件(边读边写)
public static void RW(String sFile,String dFile){
FileReader fr=null;
FileWriter fw=null;
try {
fr=new FileReader(sFile);
fw=new FileWriter(dFile);
int len=-1;
char[] buffer=new char[1024];
while((len=fr.read(buffer, 0, buffer.length))!=-1){
//此处len即为每次读取到的字符个数,当读取为空是是-1
//三个参数分别是:缓存数组 开始位置 每次存到缓存数组的长度
//**************************************************
//参数列表(char数组,开始的下标,写入的长度)
fw.write(buffer, 0, len);
fw.flush();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(fw!=null){
fw.close();
}
if(fr!=null){
fr.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
//字符数组缓冲读文件
public static void reader1(String fileName){
FileReader fr=null;
StringBuffer sb=new StringBuffer();
try {
fr=new FileReader(fileName);
int n=-1;//存储读取的长度,最后读不到了就是-1
char[] buffer=new char[2];
while((n=fr.read(buffer, 0, buffer.length))!=-1){
//此处n即为每次读取到的字符个数,当读取为空是是-1
//三个参数分别是:缓存数组 开始位置 每次存到缓存数组的长度
//append的三个参数是:源数组 开始位置 读取数组的长度
sb.append(buffer, 0, n);
}
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(null!=fr){
fr.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
System.out.println(sb.toString());
}
//逐个读取字符读文件
private static void reader2(String fileName){
FileReader fr=null;
StringBuffer sb=new StringBuffer();
try {
fr = new FileReader(fileName);
int n=-1;
while((n=fr.read())!=-1){
//此处n返回的是该读取字符的ASCII码,利用强制类型转换可转换成字符
char c=(char)n;
sb.append(c);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(null!=fr){
fr.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
System.out.println(sb.toString());
}
//字符数组缓冲写文件
private static void write(File file, String s) {
FileWriter fw = null;
char[] c=s.toCharArray();
try {
//参数列表(File file,boolean append)
//append表示追加,true的时候是追加,默认是false;
fw=new FileWriter(file, true);
//fw.write(s);
fw.write(c, 0, c.length);//参数列表(char数组,开始的下标,写入的长度)
fw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(fw!=null){
fw.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
字符输入输出流
最新推荐文章于 2022-12-14 19:47:28 发布