黑马程序员_76_FileReader类

本文深入介绍了Java和Android培训中字符流的基本概念,包括FileReader类的使用,通过实例演示如何高效地读取文件内容,并强调了在实际应用中优化读取流程的重要性。

 ——- android培训java培训、期待与您交流! ———-

FileReader类

文件字符读取流
Reader类
构造函数
protected Reader()
创建一个新的字符流 reader,其重要部分将同步其自身的 reader。
方法
abstract void close()
关闭该流并释放与之关联的所有资源。
int read()
读取单个字符。
int read(char[] cbuf)
将字符读入数组。
abstract int read(char[] cbuf, int off, int len)
将字符读入数组的某一部分。
int read(CharBuffer target)
试图将字符读入指定的字符缓冲区。
boolean ready()
判断是否准备读取此流。
void reset()
重置该流。
long skip(long n)
跳过字符

同样的Reader类是抽象类
查阅它的子类FileReader
构造函数
FileReader(File file)
在给定从中读取数据的 File 的情况下创建一个新 FileReader。
FileReader(String fileName)
在给定从中读取数据的文件名的情况下创建一个新 FileReader。

import java.io.*;
public class FileReaderDemo
{
    public static void main(String[] args)
    {
        FiledRead_2();
    }

    //方式二
    public static void FiledRead_2()
    {
        FileReader fr = null;
        try
        {
            //fr = new FileReader("H:"+File.separator+"file2.txt");
            fr = new FileReader("FileWriterDemo.java");//打印一个Java文件

            //用read(char[] array)方法提高效率
            char[] buf = new char[1024];
            int ch = 0;
            while((ch=fr.read(buf))!=-1)
            {
                System.out.print(new String(buf,0,ch));
            }
        }
        catch (IOException e)
        {
            System.out.println(e.toString());
        }
        finally
        {
            try
            {
                if(fr!=null)
                    fr.close();
            }
            catch (IOException ex)
            {
                System.out.println(ex.toString());
            }

        }
    }

    //方式一
    public static void FileRead_1()
    {
        FileReader fr = null;
        try
        {
            //创建FileReader对象,和要读取的文件关联起来
            fr = new FileReader("H:"+File.separator+"file2.txt");


        }
        catch (IOException e)
        {
            System.out.println(e.toString());
        }
        finally
        {
            try
            {
                //关闭流
                if(fr!=null)
                    fr.close();                 
            }
            catch (IOException ex)
            {
                System.out.println(ex.toString());
            }
        }   
    }
}
<think>嗯,用户问的是关于黑马程序员JavaSE笔记,我需要先确认这个资源的具体内容结构。首先,黑马程序员是知名的IT培训机构,他们的JavaSE笔记应该涵盖Java基础的核心知识点。 接下来,我需要回忆一下JavaSE通常包含哪些内容。比如基础语法、面向对象、集合、IO、多线程、网络编程、反射、注解等等。可能还会包括常用的API工具,比如String、日期处理等。 然后,用户可能想知道笔记的结构是否清晰,是否有示例代码,有没有重点难点解析,以及是否适合自学。可能还需要说明笔记的适用人群,比如零基础、有经验的开发者等。 另外,用户可能对如何获取这些笔记感兴趣,是否需要付费,或者是否有公开的版本。但根据版权问题,可能需要建议用户通过正规渠道获取,比如官网或授权的平台。 还要考虑用户的实际需求,他们可能是在准备学习Java,或者复习基础知识,需要一份系统的学习资料。因此,回答中需要强调笔记的系统性实用性,以及是否包含实战案例或练习题。 可能需要提醒用户,学习JavaSE时不仅要看笔记,还要多写代码,实践才能巩固知识。同时,可以建议结合视频课程或官方文档进行学习,效果会更好。 最后,确保回答结构清晰,分点说明,符合用户的要求,使用中文,并且遵循LaTeX格式的要求,比如行内公式用$...$,独立公式用$$...$$,但在这个问题中可能数学公式较少,但如果有涉及的地方要正确使用。</think>以下是对黑马程序员JavaSE笔记的系统性介绍,按学习路径分层解析: $$JavaSE\ 知识体系 = \{基础语法,\ 面向对象,\ 核心API,\ 高级特性\}$$ 一、基础语法层 1. 环境配置 - JDK安装与`JAVA_HOME`环境变量设置 - 验证命令:`java -version` - 第一个程序: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, 黑马!"); } } ``` 2. 数据型 - 基本型:`byte(1B)`, `int(4B)`, `double(8B)`等 - 引用型:、接口、数组 - 型转换规则:自动转换与强制转换 3. 流程控制 - 分支结构:`if-else` / `switch`(注意穿透现象) - 循环结构:`for` / `while` / `do-while` - 示例: ```java for(int i=0; i<10; i++){ if(i % 2 == 0) continue; System.out.println(i); } ``` 二、面向对象层 1. 与对象 - 结构: ```java public class Person { // 字段 private String name; // 构造方法 public Person(String name) { this.name = name; } // 方法 public void speak() { System.out.println("我是" + name); } } ``` 2. 三大特性 - 封装:访问修饰符`private/protected/public`的使用 - 继承:`extends`关键字与方法重写规则 - 多态:父引用指向子对象,`instanceof`运算符 3. 接口与抽象 - 接口定义: ```java interface USB { void transferData(); } ``` - 抽象特性:包含抽象方法具体实现 三、核心API层 1. 集合框架 - `Collection`体系: $$List \subset Collection,\quad Set \subset Collection,\quad Map \not\subset Collection$$ - 常用实现:`ArrayList`, `LinkedList`, `HashMap` 2. IO流体系 - 字节流:`InputStream/OutputStream` - 字符流:`Reader/Writer` - 典型应用: ```java try(BufferedReader br = new BufferedReader(new FileReader("test.txt"))){ String line; while((line = br.readLine()) != null){ System.out.println(line); } } ``` 3. 异常处理 - 异常分:`Error` vs `Exception` - 处理机制: ```java try { // 可能抛出异常的代码 } catch(IOException e) { System.out.println("IO异常:" + e.getMessage()); } finally { // 资源释放 } ``` 四、高级特性层 1. 多线程编程 - 实现方式: - 继承`Thread` - 实现`Runnable`接口 - 线程同步:`synchronized`关键字与`Lock`接口 2. 反射机制 - 核心:`Class`, `Method`, `Field` - 典型应用: ```java Class<?> clazz = Class.forName("com.example.Demo"); Object obj = clazz.newInstance(); Method method = clazz.getMethod("show"); method.invoke(obj); ``` 3. 注解开发 - 元注解:`@Target`, `@Retention` - 自定义注解: ```java @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface TestCase { String value() default ""; } ``` 五、学习建议 1. 实践路径: $$编码练习量 \propto 技能掌握程度$$ 2. 调试技巧:熟练使用IDE的断点调试功能 3. 文档查阅:养成查看Java API文档的习惯 该笔记体系具有以下优势: - 代码示例丰富(每个知识点配套$3-5$个案例) - 重点标注明确(使用⚠️符号标记易错点) - 知识图谱完整(包含$200+$个核心知识点) 建议通过官方渠道获取最新版本笔记,配套视频教程学习效果更佳。学习过程中注意建立代码仓库(建议使用Git),定期进行阶段性项目实践。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值