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

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. 最常用且非常重要的Linux命令

    1.针对文件或目录类 cd: cat: ls: pwd: ln: mv: cp: vi.vim: find: mkdir: touch: echo: rm: chmod: chown: chattr: ...

  2. pycharm clion rider 注册

    JetBrains 公司出品的pycharm clion rider 专业版本都需要注册才能运行,这里有个免费注册方法: JetBrains授权服务器2017.10.7授权方法:激活时选择Licens ...

  3. ZendFramework-2.4 源代码 - 关于MVC - View层 - 控制器返回值

    <?php class ReturnController extends AbstractActionController { public function returnAction() { ...

  4. POJ 2299 Ultra-QuickSort 简单题解

    Ultra-QuickSort Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 68874   Accepted: 25813 ...

  5. day 63 Django基础九之中间件

    Django基础九之中间件   本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学 ...

  6. linux 服务器被植入ddgs、qW3xT.2挖矿病毒处理记录

    被入侵后的现象: 发现有qW3xT.2与ddgs两个异常进程,消耗了较高的cpu,kill掉后 过一会就会重新出现. kill 掉这两个异常进程后,过一段时间看到了如下进程: 首先在/etc/sysc ...

  7. 饭卡 HDU - 2546(dp)

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  8. HDU 1847 Good Luck in CET-4 Everybody!(SG函数)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  9. Careercup - Microsoft面试题 - 5188169901277184

    2014-05-12 06:12 题目链接 原题: Write a function to retrieve the number of a occurrences of a substring(ev ...

  10. 47.关于gradle的解疑

    Short Answer Gradle is a build system. Long Answer Before Android Studio you were using Eclipse for ...