使用InputStreamReader语OutputStreamWriter字符流读写文件数据
public static void main(String[] args) {
// File file=new File("test.txt");
try {
FileInputStream fis=new FileInputStream("test.txt");//输入流,字节流
FileOutputStream fos=new FileOutputStream("test_new.txt");
InputStreamReader isr=new InputStreamReader(fis,"UTF-8");//将字节流转换成字符流
OutputStreamWriter osr=new OutputStreamWriter(fos,"UTF-8");
char c[]=new char[100];
int l=0;
while ((l=(isr.read(c)))!=-1) {
//String inputstring=new String(c,0,l);
osr.write(c,0,l);//0是写入的偏移量,l是写入的长度
}
System.out.println("done");
isr.close();
fis.close();
osr.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
使用带缓冲的字符流读写数据
public static void main(String[] args) {
// File file=new File("test.txt");
try {
FileInputStream fis=new FileInputStream("test.txt");//输入流,字节流
InputStreamReader isr=new InputStreamReader(fis,"UTF-8");//将字节流转换成字符流
FileOutputStream fos=new FileOutputStream("test_tl.txt");//输出流
OutputStreamWriter osr=new OutputStreamWriter(fos,"UTF-8");//写入数据
BufferedReader br=new BufferedReader(isr);
// BufferedWriter bw=new BufferedWriter(osr);
PrintWriter pw=new PrintWriter(osr,true);//打印输出流
String input;
while ((input=br.readLine())!=null) {
// bw.write(input);//输出一行
pw.println(input);
}
System.out.println("done");
pw.flush();
pw.close();
// bw.flush(); bw.close();
br.close();
isr.close();
fis.close();
osr.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}