Java中的IO基本用法
先贴一下我在作业中用到的三种文件输入辅助类、三种文件输出辅助类
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基本用法的更多相关文章
- Java中的IO流,Input和Output的用法,字节流和字符流的区别
Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流.内存中的数据持久化到设备上-------->输出(Output).把 硬盘上的数据读取到内存中,这种操作 成为 ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- JAVA中mark()和reset()用法
根据JAVA官方文档的描述,mark(int readlimit)方法表示,标记当前位置,并保证在mark以后最多可以读取readlimit字节数据,mark标记仍有效.如果在mark后读取超过rea ...
- java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET
java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了! 社区福利快来领取免费参加MDCC大会机会哦 Tag功能介绍—我们 ...
- java中的IO操作总结
一.InputStream重用技巧(利用ByteArrayOutputStream) 对同一个InputStream对象进行使用多次. 比如,客户端从服务器获取数据 ,利用HttpURLConnect ...
- java中的IO流
Java中的IO流 在之前的时候我已经接触过C#中的IO流,也就是说集中数据固化的方式之一,那么我们今天来说一下java中的IO流. 首先,我们学习IO流就是要对文件或目录进行一系列的操作,那么怎样操 ...
- Java中Date各种相关用法
Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set ...
- JAVA中enum的常见用法
JAVA中enum的常见用法包括:定义并添加方法.switch.遍历.EnumSet.EnumMap 1.定义enum并添加或覆盖方法 public Interface Behaviour{ void ...
- 巨人大哥谈Java中的Synchronized关键字用法
巨人大哥谈Java中的Synchronized关键字用法 认识synchronized 对于写多线程程序的人来说,经常碰到的就是并发问题,对于容易出现并发问题的地方价格synchronized基本上就 ...
随机推荐
- Cisco交换机与路由器命令总结
1.查看信息 show version 查看版本及引导信息 show running-config 查看运行设置 show startup-config 查看开机设置 show ...
- 十、Linux vi/vim
Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...
- matplotlib(一)——matplotlib横轴坐标密集字符覆盖
一.问题描述 具体问题是: 用python库matplotlib进行数据的图表展示: 图表展示图形横坐标有将近100个自定义值需要显示: 保存矢量图(svg),保存后发现横坐标过于密集,坐标值之间有覆 ...
- configParser模块详谈
前言 使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser configPars ...
- django开发基础
一.配置静态文件 https://www.cnblogs.com/lshedward/p/10351051.html 二.路由分发 https://www.cnblogs.com/lshedward/ ...
- UVA_10653 公主与王子 #刘汝佳DP题刷完计划
题意如蓝书66页例题27所示. 这个问题描述了一个LCS的特殊情况——单个字符串内所有元素各不相同. 题目要求输入两个数字串,A,B,要求求出最长公共字串.且数字上限是256*256. 做法:数组A表 ...
- WPF实现QQ群文件列表动画(一)
QQ群大家都用过,先看下目前QQ的群文件列表容器的效果: 细心点大家就会发现,这玩意收缩和展开是带动画的,并不是很僵硬地直接收缩或者直接展开,毫无疑问,如果用WPF实现这样的效果,这里的最佳控件是Ex ...
- Spring Boot 开发系列一 开发环境的一些九九
从今天开始写这个Spring Boot 开发系列,我是第二周学习JAVA的,公司号称springboot把JAVA的开发提升到填空的能力,本人是NET转JAVA的,想看看这个填空的东西到底有多强.废话 ...
- jq阻止ajax进行多次提交
在函数定义全局变量..var Stch=falseif (Stch==true){alert('请不要重新提交');}else{Stch=true;$.ajax({type:"POST&qu ...
- virsh命令管理虚拟机
virsh命令管理虚拟机 libvirt有两种控制方式,命令行和图形界面. 1.图形界面:通过执行名virt-manager,启动libvirt的图形界面,在图形界面下可以一步一步的创建虚拟机,管理虚 ...