先贴一下我在作业中用到的三种文件输入辅助类、三种文件输出辅助类

public class BuffIn implements InHelp{
private BufferedReader bufferedReader; public BuffIn(String path) {
try {
bufferedReader = new BufferedReader(
new InputStreamReader(new FileInputStream(path), "UTF-8"));
}catch (IOException e){
System.err.println("请提供正确路径");
PathException e2 = new PathException(path,"路径地址错误");
Logs.logger.error(e2.getMessage());
}
} @Override
public String read() throws IOException {
TimeCounter.start();
String s = bufferedReader.readLine();
TimeCounter.pause();
return s;
} @Override
public void shut() throws IOException {
bufferedReader.close();
}
} public class BuffreaderIn implements InHelp{
private BufferedReader bufferedReader;
public BuffreaderIn(String path) {
try {
bufferedReader = new BufferedReader(new FileReader(path));
}catch (IOException e){
System.err.println("请提供正确路径");
PathException e2 = new PathException(path,"路径地址错误");
Logs.logger.error(e2.getMessage());
}
} @Override
public String read() throws IOException {
TimeCounter.start();
String s = bufferedReader.readLine();
TimeCounter.pause();
return s;
} @Override
public void shut() throws IOException {
bufferedReader.close();
}
} public class ScannerIn implements InHelp{
private Scanner scanner;
private java.io.File file;
public ScannerIn(String path) {
try {
file = new java.io.File(path);
scanner = new Scanner(file);
}catch (IOException e){
System.err.println("请提供正确路径");
exception.PathException e2 = new exception.PathException(path,"路径地址错误");
logs.Logs.logger.error(e2.getMessage());
}
} @Override
public String read() throws IOException {
TimeCounter.start();
if(!scanner.hasNextLine()) return null;
String s = scanner.nextLine();
TimeCounter.pause();
return s;
} @Override
public void shut() throws IOException {
scanner.close();
}
}
public class BuffOut implements OutHelp{
private BufferedWriter bufferedWriter;
private FileOutputStream fileOutputStream;
public BuffOut(String path) {
try {
fileOutputStream = new FileOutputStream(path);
bufferedWriter = new BufferedWriter(
new OutputStreamWriter(fileOutputStream, "UTF-8"));
}catch (IOException e){
System.err.println("请提供正确路径");
PathException e2 = new PathException(path,"路径地址错误");
Logs.logger.error(e2.getMessage());
}
} @Override
public void write(String s) throws IOException {
TimeCounter.start();
bufferedWriter.write(s);
TimeCounter.pause();
} @Override
public void shut() throws IOException {
bufferedWriter.close();
fileOutputStream.close();
}
} public class StreamOut implements OutHelp{
private OutputStreamWriter outputStreamWriter;
private FileOutputStream fileOutputStream; public StreamOut(String path) {
try {
fileOutputStream = new FileOutputStream(path);
outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
}catch (IOException e){
System.err.println("请提供正确路径");
PathException e2 = new PathException(path,"路径地址错误");
Logs.logger.error(e2.getMessage());
}
} @Override
public void write(String s) throws IOException {
TimeCounter.start();
outputStreamWriter.write(s);
TimeCounter.pause();
} @Override
public void shut() throws IOException {
outputStreamWriter.close();
fileOutputStream.close();
}
} public class WriterOut implements OutHelp {
private FileWriter fileWriter; public WriterOut(String path) {
try {
fileWriter = new FileWriter(path);
}catch (IOException e){
System.err.println("请提供正确路径");
PathException e2 = new PathException(path,"路径地址错误");
Logs.logger.error(e2.getMessage());
}
} @Override
public void write(String s) throws IOException {
TimeCounter.start();
fileWriter.write(s);
TimeCounter.pause();
} @Override
public void shut() throws IOException {
fileWriter.close();
}
}

主要的类如下:

1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。

2. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。

3. OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。

4.Reader(文件格式操作):抽象类,基于字符的输入操作。

5. Writer(文件格式操作):抽象类,基于字符的输出操作。

6. RandomAccessFile(随机文件操作):一个独立的类,直接继承至Object.它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作。

针对一些频繁的设备交互,Java语言系统预定了3个可以直接使用的流对象,分别是:

·        System.in(标准输入),通常代表键盘输入。

·        System.out(标准输出):通常写往显示器。

·        System.err(标准错误输出):通常写往显示器。

IOException异常类的子类
    1.public class  EOFException :   非正常到达文件尾或输入流尾时,抛出这种类型的异常。

2.public class FileNotFoundException:   当文件找不到时,抛出的异常。

3.public class InterruptedIOException: 当I/O操作被中断时,抛出这种类型的异常。

Java中的IO基本用法的更多相关文章

  1. Java中的IO流,Input和Output的用法,字节流和字符流的区别

    Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流.内存中的数据持久化到设备上-------->输出(Output).把 硬盘上的数据读取到内存中,这种操作 成为 ...

  2. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  3. JAVA中mark()和reset()用法

    根据JAVA官方文档的描述,mark(int readlimit)方法表示,标记当前位置,并保证在mark以后最多可以读取readlimit字节数据,mark标记仍有效.如果在mark后读取超过rea ...

  4. java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET

    java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了!      社区福利快来领取免费参加MDCC大会机会哦    Tag功能介绍—我们 ...

  5. java中的IO操作总结

    一.InputStream重用技巧(利用ByteArrayOutputStream) 对同一个InputStream对象进行使用多次. 比如,客户端从服务器获取数据 ,利用HttpURLConnect ...

  6. java中的IO流

    Java中的IO流 在之前的时候我已经接触过C#中的IO流,也就是说集中数据固化的方式之一,那么我们今天来说一下java中的IO流. 首先,我们学习IO流就是要对文件或目录进行一系列的操作,那么怎样操 ...

  7. Java中Date各种相关用法

    Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set ...

  8. JAVA中enum的常见用法

    JAVA中enum的常见用法包括:定义并添加方法.switch.遍历.EnumSet.EnumMap 1.定义enum并添加或覆盖方法 public Interface Behaviour{ void ...

  9. 巨人大哥谈Java中的Synchronized关键字用法

    巨人大哥谈Java中的Synchronized关键字用法 认识synchronized 对于写多线程程序的人来说,经常碰到的就是并发问题,对于容易出现并发问题的地方价格synchronized基本上就 ...

随机推荐

  1. ASP.NET Core模块化前后端分离快速开发框架介绍之2、快速创建一个业务模块

    源码地址 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin ...

  2. 【jenkins】jenkins服务器与svn服务器时间不一致出现的问题

    问题描述: svn提交了一次更新包,到了jenkins提交更新的时候,第一次代码没有生效,然后重新提交了一次,第二次才生效. 问题排查: 1.首先第一反应比对了下两次更新的包文件是否一致,然后发现大小 ...

  3. jQuery的select2下拉框的搜索功能(使用select2插件,方便简单)

    第一步: 引入我们用使用的插件 jquery: select2: css: js: 第二步: 创建一个html页面,body内容: <div> <select class=" ...

  4. python 3 在工作中的应用

    Python 3在工作中的使用 安装配置Python 3 在notepad++中配置Python 3 使用sql server数据库 操作Excel 发送email python 3 使用日志   安 ...

  5. 基于Ajax提交formdata数据、错误信息展示和局部钩子、全局钩子的校验。

    formdata重点: 实例化FormData这个类 循环serializeArray可以节省代码量 图片要用$('#id')[0].files[0]来获得 加上contentType:false和p ...

  6. django之配置静态文件

    # 别名 STATIC_URL = '/static/' # 配置静态文件,名字必须是STATICFILES_DIRS STATICFILES_DIRS = [ os.path.join(BASE_D ...

  7. LeetCode刷题感想

    断断续续用了半年的时间把LeetCode刷完了,之前复习了数据结构与算法.将刷题与复习数据结构结合起来会更有效果.总之不是为了刷题而刷题,而是为了巩固和补充一部分知识. LeetCode真的是一个很好 ...

  8. 笔记-数据库-redis

    笔记-数据库-redis 1.      redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 stri ...

  9. SharedPreferences使用(通过键值保存数据)

    保存数据到SharedPreferences中 要想使用SharedPreferences来存储数据, 首先需要获取到SharedPreferences对象. Android中主要提供了三种方法用于得 ...

  10. KNN算法python实现小样例

    K近邻算法概述优点:精度高.对异常数据不敏感.无数据输入假定缺点:计算复杂度高.空间复杂度高适用数据范围:数值型和标称型工作原理:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签 ...