java IO操作
1.概览
| 分类 | 字节输入流 | 字节输出流 | 字符输入流 | 字符输出流 | 
|---|---|---|---|---|
| 抽象基类 | InputStream | OutputStream | Reader | Writer | 
| 访问文件 | FileInputStream | FileOutputStream | FileReader | FileWriter | 
| 访问数组 | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter | 
| 访问管道 | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter | 
| 缓冲流 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter | 
| 转换流 | InputStreamReader | OutputStreamWriter | ||
| 对象流 | ObjectInputStream | ObjectOutputStream | ||
| 抽象基类 | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter | 
| 打印流 | PrintStream | PrintWriter | ||
| 特殊流 | DataInputStream | DataOutputStream | 
2.使用
2.1.概述
IDEA中,在@Test标注的单元测试方法下,File中相对路径的基础路径为模块名,而在main方法中,File中相对路径的基础路径为工程名
2.2.FileReader
        FileReader fileReader = null;
        try {
            fileReader = new FileReader(new File("hello.txt"));
            // 无参的read方法一次只能读一个字符(返回值为int类型,可以强转为char类型)
            char[] arr = new char[10];
            // 传入字符数组,则会将内容读入到字符数组中,能装满就装满,返回值为装入多少个字符
            int count;
            while ((count = fileReader.read(arr)) != -1) {
                // 注意要调用String的此种构造参数,否则如果读不满,会将剩下的脏数据输出(每次填入char数组时不会清空,只会覆盖对应位置的数据)
                System.out.print(new String(arr, 0, count));
            }
            fileReader.read();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fileReader != null) {
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
2.3.FileWriter
        FileWriter fileWriter = null;
        try {
            // 如果file文件不存在,则会自动创建此文件
            // 如果file文件存在,则默认会覆盖此文件内容,FileWriter构造器还有第二个参数(boolean类型,标识是否追加,为true则表示追加内容,不会覆盖原有内容)
            fileWriter = new FileWriter("hello1.txt", true);
            fileWriter.write("123");
        } catch (Exception e) {
        } finally {
            if (fileWriter != null) {
                try {
                    fileWriter.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号