1.注意:无论哪个构造方法,在创建文件输入输出流时都可能银给出的文件名不对、路径不对
文件的属性不对等,不能打开文件而造成错误,此时系统会抛出FileNotFoundException异常
执行read()和write()方法时还可能因为I/O错误系统抛出IOException异常,所以创建输入输出
流调用构造方法语句以及执行读写操作的语句必须被包含在try语句中,并有相应的catch语句
块来处理可能产生的异常,同样也可以使用自动关闭资源语句try-catch-resources
2.过滤输入输出:
过滤字节输入输出FilterInputStream和过滤字节输出流 FilterOutputStream ,分别实现了在
数据的读、写操作的同时进行数据处理,它们是InputStream和 OutputStream类的直接子类
FilterInputStream和FilterOutputStream也是两个抽象类,它们分别派生了数据输入流类
DataInputStream和数据输出流类DataOutputStream等子类。
3.过滤字节输入输出流最大特点:
过滤字节输入输出流是建立在基本输入输出流之上,并在输入输出数据的同时能对所传输的
数据做指定类型或格式的转换,即可实现二进制字节数据的理解和编码转换。
4.数据输入流DataInputStream和数据输出流DataOutputStream的构造方法:
1)DataInputStream(InputStream in)建立一个新的数据输入流,从指定的输入流in读数据
2)DataOutputStream(OutputStream out)建立一个新的数据输出流,向指定的输出流
写数据
5.注意:由构造方法的形式来看 ,作为过滤流,字节输入流和输出流分别作为数据输入流和
输出流的构造方法的参数,即作为过滤流必须与相应的数据流相连。
6. 使用Reader和Writer流类:
使用FileReader类读取文件:在使用FileReader类读取文件时,必须先调用FileReader()
构造方法创建FileReader类的对象,再利用它来调用read()方法
FileReader fr = new FileReader("D:/JAVA/test.txt");
int num = fr.read(c);
7.String str = new String(c,0,num);//利用String()构造方法将字符数组c从下标为0的位置开始
取num个字符赋给变量str,实际上str就是所读取文件的全部内容
8.注意:java把每个汉子和英文字母作为一个字符对待,但把Enter键生成的回车换行符“\r\n”
作为两个字符
9.使用FileWriter类写入文件:
要使用FileWriter类将数据写入文件,必须先调用FileWriter()构造方法创建FileWriter类对象
再用它来调用write方法
FileWriter fw = new FileWriter("D:\\JAVA\\TEST.TXT");
fw.write(c);//将字符数组写到文件里面
fw.write(str);//将字符串写到文件里
10.使用BufferedReader类读取文件:是用于读取缓冲区的数据
使用BufferedReader类读取缓冲区的数据之前,必须先创建Filereader类对象,再以对象为
参数来创建BufferedReader的对象,菜可以利用此对象来读取缓冲区中的数据
FileReader fr = new FileReader("D:/JAVA/test.txt");
BufferedReader bfr = new BufferedReader(fr)
11.使用BufferedWriter类写入文件:是用于将数据写入缓冲区
首先必须先创建FileWriter类对象,再以该对象为参数来创建BufferedWriter的对象,然后
可以利用此对象将数据写入缓冲区中。
12.缓冲区的数据最后必须用fluse()方法将缓冲区清空,也就是将缓冲区中的数据
全部写入文件中
13.创建File类的对象:File类有三种构造方法,分别不同的参数形式接受文件和文件名信息
14.获取文件或文件属性:
public boolean exists():判断文件或文件夹是否存在
public boolean isFile():判断对象是否代表有效文件
public boolean isDirectory() 判断对象是否代表有效文件夹
public String getName():返回文件名或文件属性
public boolean canRead():判断文件是否可读
public boolean canRead():判断文件是否可写
15.文件或文件夹操作:
public boolean renameTo(File newFile):将文件重命名为newFile对应的文件名
public boolean delete():将当前文件夹删除,若删除成功返回true,否则返回false
public boolean mkdir():创建当前文件夹的子文件夹,若成功返回true,否则返回false

总结:今天学习了Reader和Writer类的对象调用读写方法读写文件夹中的内容,并把他们显示在屏幕上

四月二十五号java基础知识的更多相关文章

  1. 《手把手教你》系列技巧篇(二十五)-java+ selenium自动化测试-FluentWait(详细教程)

    1.简介 其实今天介绍也讲解的也是一种等待的方法,有些童鞋或者小伙伴们会问宏哥,这也是一种等待方法,为什么不在上一篇文章中竹筒倒豆子一股脑的全部说完,反而又在这里单独写了一篇.那是因为这个比较重要,所 ...

  2. Java基础(二十五)Java IO(2)文件File类

    File类是一个与流无关的类.File类的对象可以获取文件及其文件所在的目录.文件的长度等信息. 1.File对象的常用构造方法. (1)File(String pathname) File file ...

  3. 十五、Java基础---------集合框架体系以及List

    在介绍集合之前先说一下数组,正如我们所知,数组是某一类型数据的集合,强调的是数据,而且必须单一:集合框架的不同之处在于存储的数据类型没有任何限制,既可以存储基本数据类型(会自动提升为相应的包装类)也可 ...

  4. 二十八、Java基础--------正则表达式

    在对字符串进行处理时一方面可以利用String对象的一些处理方法另一方面可以利用正则表达式,但是一般情况下用String对象方法进行处理起来会相对麻烦一些而正则表达式可以很方便的解决问题.为了更好的学 ...

  5. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  6. JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

    JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...

  7. JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine

    JAVA之旅(二十五)--文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine 我们继续IO上个篇 ...

  8. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  9. 二十五. Python基础(25)--模块和包

    二十五. Python基础(25)--模块和包 ● 知识框架   ● 模块的属性__name__ # my_module.py   def fun1():     print("Hello& ...

  10. java基础知识一览(二)

    一.java基础知识 1.一个文件中只能有一个public的类,因为他的类名要求和文件名相同. 2.classpath变量可以设置其它目录下的类. 例如:类文件所在目录是:F:\Javajdk,那么没 ...

随机推荐

  1. CSS 常用样式-盒子实体化三属性

    如果想在浏览器中具体看到一个盒子占有的实际位置,需要设置盒子可以实体化的三属性. 实体化属性:

  2. 第一章 对程序员来说CPU是什么

    章节标题下方有几个问题,看完后便对第一章的内容有了大概的了解. 第一章观后感想: 第一章解释了CPU是什么,CPU相当于计算机的大脑,它的内部由数百万至数亿个晶体管构成. CPU所负责的就是解释和运行 ...

  3. 线程安全与数据结构JAVA

    线程 线程与进程本质的区别在于每个进程拥有自己的一整套变量, 而线程之间可以有共享变量.另外创建.销毁一个线程的代价比启动新进程的代价要小. 在java中,没有可以强制线程终止的方法,然而, inte ...

  4. k8s ingress

    ingress   ingress为k8s集群中的服务提供了入口,可以提供复制均衡,ssl终止和基于名称的虚拟主机,再生产环境中,常用的ingress有Treafik,Nginx,HAProxy,Is ...

  5. EVE如何提升名望值

    目录 背景介绍 简介 名望值划分 军团名望值 利弊 背景介绍 ​ 玩eve将近3个星期,开着毒蜥级刷1级代理人任务感觉没有一点难度,想尽快刷3.4级代理任务,而我目前能够接到的最高代理任务也就才1级. ...

  6. CH573 CH579 CH582程序烧录讲解

    WCH的蓝牙芯片CH57x/CH58x系类大部分是支持串口烧录.USB烧录和LINK烧录的,除了一些特殊的封装,如571K,它引脚较少,只支持串口免按键烧录. 仿真下载:ARM内核的CH579支持Jl ...

  7. Windows 10 输入法(仅桌面) %100 解决

    大家好,今天我遇到了一件非常难受的一件事,那就是 WIndows 自带的输入发问题,无法输入中文!!! 这时我去网上找找解决方案,总结了一下几个: 文件检查 步骤 以管理员身份运行PowerShell ...

  8. windows代码获取系统硬件信息的两种方式

    欢迎访问我的个人博客:xie-kang.com 原文地址 目前windows有两种方式获取系统硬件信息: 1)通过GetSystemFirmwareTable API获取SMBIOS信息,一段含丰富信 ...

  9. Oracle-登录的用户名和密码大小写敏感

    Oracle-登录的用户名和密码大小写敏感

  10. Caused by: java.lang.ClassNotFoundException: Class org.openx.data.jsonserde.JsonSerDe not found

    Caused by: java.lang.ClassNotFoundException: Class org.openx.data.jsonserde.JsonSerDe not found 解决方法 ...