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. js-classList用法学习记录1

    classList introduction: 学习后我的个人理解是,在给html中创建的类一系列操作的方法调用. detailed method: 网站具体介绍(菜鸟) add:添加类,已有则不添加 ...

  2. ReactHooks_useState

    import { useState } from "react"; import './App.css'; function App() {   const [redBorder, ...

  3. vue移动端购物商场首页制作

    1.搭建项目框架 新建首页主组件及其子组件并将子组件展示出来 2.封装所需接口 3.编写轮播图组件 <template> <div id="swipercom"& ...

  4. vue + vant 移动端适配

    1. 设置动态根字号大小,/public/phone-adapt.js,在index.html中引入 (function (doc, win) { const docEl = win.document ...

  5. NOIP2013普及组

    T1]记数问题 试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?例如,在1到11 中,即在1.2.3.4.5.6.7.8.9.10.11中,数字1 出现了4 次. 其实 ...

  6. 5、Jmeter监听器技术

    1.图形监听器: 1.1:Lable:表示标签(标题)http请求的名称 1.2:Samples:跑的一共的线程数 1.3:Average:平均响应时间 1.4:Median:中间值 1.5:90%L ...

  7. 【NAS使用心得】使用Synology Photos管理照片

    整理方式 1.本地没有整理或只按年份整理的:时间线模式下直接上传,让软件自己按照片创建时间生成文件夹:有按年份生成相册需求的,可以用"选择照片以创建相册"功能,找到年份文件夹,全选 ...

  8. Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.

    错误原因 在pom中引入了mybatis-spring-boot-starter ,Spring boot默认会加载org.springframework.boot.autoconfigure.jdb ...

  9. class1,2,3,4,5,6,7

    //测试你是哪一类学者 #include<stdio.h> int main() { int ans; char words[5000]; printf("网课学习让一些人喜一些 ...

  10. 30天帮你一步步学会Python的开源项目

    最近发现一个不错的免费开源学习项目:30天学会Python 如果您最近有学习Python的打算,不妨看看这个是否适合你? 项目地址:https://github.com/Asabeneh/30-Day ...