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

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. elasticsearch 大量数据翻页到后面无数据解决

    默认情况下报错信息:from + size 不能大于10000 {"error":{"root_cause":[{"type":" ...

  2. tcl之基本语法—3

  3. 03.VUE学习之动态绑定值

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  4. python字符串处理方法

    一.combine & duplicate 字符串结合和复制 字符和字符串可以用来相加来组合成一个字符串输出: 字符或字符串复制输出. 二.Extract &Slice 字符串提取和切 ...

  5. Serializer序列器

    定义Serializer 1. 定义方法 Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializ ...

  6. oracle 事务 第二弹

    一 数据库版本 SYS@LEO1>select* from v$version; BANNER ------------------------------------------------- ...

  7. hdu 5667

    Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  8. The Suspects POJ 1611

    The Suspects Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, w ...

  9. Robotium接入到Jenkins持续集成自动化测试

    6.3 将测试用例接入到Jenkins 由于我是自己学习的手机自动化测试,没有实际投入到工作中使用,jenkins的接入也没有具体操作,现摘抄一下网页:http://www.tuicool.com/a ...

  10. 项目太多工作环境互相干扰?virtualenv 一招教你轻松解决。

    写在之前 在上一篇文章 安装的 Python 版本太多互相干扰?以后再也不用担心这个问题了. 中我给大家介绍了一个 Python 版本的管理工具「pyenv」,可以很容易的安装不同的 Python 版 ...