字符读取
package io;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.CharBuffer;
/**
* @author : htf
* 字符读取
*/
public class TestReader {
//一个字符 一个字符的 读
public static void test() {
File file=new File("E:\\temp\\a.txt");
FileReader fr=null;
try {
fr=new FileReader(file);
int c=fr.read();
c=fr.read();
c=fr.read();
c=fr.read();
c=fr.read();
c=fr.read();
System.out.println();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//遍历读取
public static void test1() {
File file=new File("E:\\temp\\a.txt");
FileReader fr=null;
try {
fr=new FileReader(file);
int a=0;
while((a=fr.read())!=-1) {
System.out.println((char)a);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//开启缓存区读取
public static void test2() {
File file=new File("E:\\temp\\a.txt");
FileReader fr=null;
try {
fr=new FileReader(file);
int a=0;
char[] b=new char[3];//每次读取3个字符
//使用FileReader中的read方法参数是一个数组,每次读取3个字符,返回值为-1时,读取完成
while((a=fr.read(b))!=-1) {
System.out.println(new String(b, 0, a));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
//test();
//test1();
test2();
}
}
字符写 拷贝
package io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* @author : htf
* 字符写入与文件拷贝
*
*/
public class TestWriter {
//读一个,写一个 效率低下
public static void test1() {
File src =new File("E:\\temp\\a.txt");
File dest=new File("E:\\temp\\a5.txt");
FileReader fr = null;
FileWriter fw = null;
try {
fr=new FileReader(src);
fw=new FileWriter(dest);
int a=fr.read();
fw.write(a);
a=fr.read();
fw.write(a);
a=fr.read();
fw.write(a);
a=fr.read();
fw.write(a);
a=fr.read();
fw.write(a);
fw.flush();//刷新
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
fw.close();
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//读一组,写一组
public static void test2() {
File src =new File("E:\\temp\\a.txt");
File dest=new File("E:\\temp\\a6.txt");
FileReader fr = null;
FileWriter fw = null;
try {
fr=new FileReader(src);
fw=new FileWriter(dest);
char b[]=new char[3];//每次读三个字符
int a=0;
while(( a=fr.read(b))!=-1) {
fw.write(b,0,a);//将每次读到的数据写进a6.txt,a,写入的字符数
}
fw.flush();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
fw.close();
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
test2();
}
}