Java基础进阶IO流-FileReader,FileWriter字符流

简介: Java基础进阶IO流-FileReader,FileWriter字符流

FileReader(字符输入流):

文件字符输入流,只能读取普通文本。

读取文本内容时,比较方便,快捷。


示例代码01:


public class FileReaderTest {
    public static void main(String[] args) {
        FileReader reader = null;
        try {
            reader = new FileReader("IO/src/com/newstudy/javase/io/temp4.txt");
            //准备一个char数组
            char[] chars = new char[4];
            // 往char数组中读,一次只能读取四个字节
            reader.read(chars); // 按照字符的方式读取:第一次e,第二次f,第三次 风....
            for(char c : chars) {
                System.out.print(c);//别把c错写成chars了
            }
            //按照字符流的方式读,每次读四个字符
            /*char[] chars = new char[4];
            int readerCount = 0;
            while((readerCount = reader.read(chars)) != -1){
                System.out.print(new String(chars,0,readerCount));
            }*/
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(reader != null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}


0a2653c851af460fa595bd959398a8f1.png


运行结果:


2d65d23f6d4748949b924e4057485923.png


FileWriter(字符输出流):


示例代码02:


public class FileWriterTest {
    public static void main(String[] args) {
        FileWriter out = null;
        try {
            out = new FileWriter("file",true);
            //用字符串方式写入
            char[] chars = {'我','是','中','国','人'};//API方法
            out.write(chars);
            out.write(chars,2,3);
            //用字符串写入
            out.write("我是一名java软件工程师!");
            out.write("\n");
            out.write("HelloWorld!");
            //刷新
            out.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(out != null){
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}


运行结果:


6de278e6d6694ce5bb08e7e842b7e74b.png

相关文章
|
6天前
|
Java Android开发
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
24 1
|
11天前
|
存储 缓存 Java
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
34 3
|
19天前
|
安全 Java Linux
(七)Java网络编程-IO模型篇之从BIO、NIO、AIO到内核select、epoll剖析!
IO(Input/Output)方面的基本知识,相信大家都不陌生,毕竟这也是在学习编程基础时就已经接触过的内容,但最初的IO教学大多数是停留在最基本的BIO,而并未对于NIO、AIO、多路复用等的高级内容进行详细讲述,但这些却是大部分高性能技术的底层核心,因此本文则准备围绕着IO知识进行展开。
|
24天前
|
Java Perl
Java进阶之正则表达式
【7月更文挑战第17天】正则表达式(RegEx)是一种模式匹配工具,用于在字符串中执行搜索、替换等操作。它由普通字符和特殊元字符组成,后者定义匹配规则。
17 4
|
27天前
|
设计模式 Java
Java进阶之代理
Java进阶之代理
17 4
|
27天前
|
设计模式 Java
Java进阶之代理
Java进阶之代理
16 3
|
27天前
|
设计模式 Java
Java进阶之代理
【7月更文挑战第16天】Java动态代理通过`java.lang.reflect.Proxy`和`InvocationHandler`实现,无需编译期定义代理类。与静态代理相比,它更灵活,代码更简洁,适用于方法数量变化或未知接口代理。
15 2
|
28天前
|
Java 编译器 API
Java进阶之标准注解
【7月更文挑战第15天】Java标准注解包括标记注解(如@Deprecated)、@Override(检查方法重写)、@SuppressWarnings(抑制警告)。多值注解如@RequestMapping在Spring中用于HTTP请求映射。元注解如@Retention控制注解保留策略,@Target指定应用位置。Java8引入类型注解(@FunctionalInterface、@SafeVarargs)和重复注解(@Repeatable)。自定义注解可通过反射读取,如示例中的MyMarkerAnnotation等。
17 2
|
1月前
|
Java
Java进阶之内部类
【7月更文挑战第13天】Java内部类增进代码组织与封装,允许直接访问外部类成员,包括私有成员。主要有四种类型:成员、静态、局部和匿名内部类。匿名内部类常用于一次性实现接口或扩展类。内部类可隐藏实现细节,减少命名冲突,并在特定上下文中定义辅助类。示例展示了静态和非静态内部类如何在Shape类中封装Circle和Rectangle。使用内部类能提升代码可读性,但可能增加复杂性。
26 6
|
28天前
|
Java 编译器 API
Java进阶之标准注解
Java进阶之标准注解
18 1