美文网首页
文件的读写操作(Java版)

文件的读写操作(Java版)

作者: 方_f666 | 来源:发表于2021-02-24 09:40 被阅读0次

    IO的类型
    传输方向:输入流、输出流。
    传输内容:字节流、字符流:字节流可以传输任何文件,字符流只能传输文本文件。
    功能上:节点流、过滤流。节点流有基本的读写功能,过滤流在节点流的基础上增加功能。

    字节流的父类是InputStream(读)、OutputStream(写),
    节点流:FileInputStream、FileOutputStream,
    过滤流:DataInputStream、DataOutputStream。

    字符流父类是Reader、Writer,
    节点流:FileReader、FileWriter,
    过滤流:BufferedReader、BufferedWriter,
    桥转换流:InputStreamReader、OutputStreamWriter,
    字符流的编码方式和解码方式需要相同。

    字节流的读操作代码:

        public static void byteRead(File file) {
            try {
                InputStream inputStream = new FileInputStream(file);
                byte[] bytes = new byte[inputStream.available()];
                int n = inputStream.read(bytes);
                // 打印new String(bytes, 0, n));
                inputStream.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    

    字节流的写操作代码:

        public static void byteWrite(File file) {
            try {
                OutputStream outputStream = new FileOutputStream(file);
                String text = "Hello World";
                byte[] data = text.getBytes();
                outputStream.write(data);
                outputStream.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    

    字节流的读出再写入操作代码:

        public static void byteReadToWrite(File file,File newFile) {
            try {
                InputStream inputStream = new FileInputStream(file);
                byte[] bytes = new byte[inputStream.available()];
                OutputStream outputStream = new FileOutputStream(newFile);
                inputStream.read(bytes);
                outputStream.write(bytes);
                inputStream.close();
                outputStream.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    

    字符流的读操作代码:

        public static void stringRead(File file) {
            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GB2312"));
                String str = reader.readLine();
                // 打印str
                reader.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    

    字符流的写操作代码:

        public static void stringWrite(File file) {
            try {
                Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"GB2312"));
                String text = "Hello World 你好世界";
                writer.write(text);
                writer.flush();
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    

    字符流的读出再写入操作代码:

    public static void stringReadToWrite(File file, File newFile) {
            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file),"GB2312"));
                String str = reader.readLine();
                // 打印str
                Writer writer = new FileWriter(newFile);
                writer.write(str);
                writer.write("stringReadToWrite");
                writer.flush();
                reader.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    

    相关文章

      网友评论

          本文标题:文件的读写操作(Java版)

          本文链接:https://www.haomeiwen.com/subject/lvbjfltx.html