代码示例:
public class TestFileReaderWriter { /* * 使用FileReader FileWriter 可以实现文本文件的复制 * 对于非文本文件(视频文件、音频文件、图片),只能使用字节流! * */ @Test public void testFileReaderWriter() { //1.输入流对应的文件src一定要存在,否则抛异常,输出流对应的文件dest可以不存在,执行过程中会自动创建 FileReader fr = null; FileWriter fw = null; try { // File src = new File("1.png"); //不能实现非文本文件的复制 // File dest = new File("2.png"); File src = new File("aa.txt"); File dest = new File("bb.txt"); //2. fr = new FileReader(src); fw = new FileWriter(dest); //3. char[] c = new char[24]; int len; while ((len = fr.read(c)) != -1) { fw.write(c,0,len); } } catch (IOException e) { e.printStackTrace(); } finally { if (fr != null) { try { fr.close(); } catch (IOException e) { e.printStackTrace(); } } if (fw != null) { try { fw.close(); } catch (IOException e) { e.printStackTrace(); } } } } @Test public void testFileReader() { FileReader fr = null; try { File file = new File("aa.txt"); fr = new FileReader(file); char[] c = new char[24]; int len; while ((len = fr.read(c)) != -1) { String str = new String(c, 0, len); System.out.print(str); } } catch (IOException e) { e.printStackTrace(); } finally { if (fr != null) { try { fr.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
FileReader和FileWriter字符流只能实现文本文件的操作,对于非文本文件(视频文件、音频文件、图片文件),只能使用字节流!
因为视频文件、音频文件、图片文件等都是用字节(byte)来存的,并非字符(char)!