I/O输入输出流
I/O(输入/输出)
在变量、数组和对象中存储的数据是暂时存在的,程序结束后它们就会消失。为了能够永久地保存创建的数据,需要将其保存在磁盘文件中,这样可以在其他程序中使用它们。
Java的I/O技术可以将数据保存到文本文件、二进制文件甚至是ZIP压缩文件中,已达到永久性保存数据的要求。
IO流
流是一组有序的数据序列,根据数据操作的类型,可分为输入流和输出流两种。即从java内存流动到存储介质中。
存储介质包括:硬盘、文件、数据库与网络等节点(数据源)。
流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。
虽然I/O流通常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内存或显示器等窗口等。
java由数据流处理输入/输出模式,程序从指向源的输入流中读取源中的数据。
输出流的指向是数据要到达的目的地,程序通过向输出流中写入数据把信息传送到目的地。
Java语言定义了许多专门负责各种方式的输入/输出,这些类都被放在java.io包中。其中,所有输入流都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。
输入流
InputStream类是字节输入的抽象类,是所有字节输入流的父类。该类中所有方法遇到错误都会引发IOException异常。
1、输入流
Java中的字符是Unicode编码,是双字节。InputStream是用来处理字节的,并不适合处理字符文本。Java为字符文本的输入专门提供了一套单独的类Reader,但Reader类并不是InputStream类的替换者,只是在处理字符串时间简化了编程。Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类。
2、输出流
OutputStream类是字节输出流的抽象类,此抽象类是表示输出流的所有类的超类。
OutputStream类中的所有方法均返回void,在遇到错误时会引发IOException异常。
Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类。
File类
File类是java.io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操作文件,可以通过File类中的方法,实现创建、删除、重命名文件等操作。File类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度读写权限等。数据流可以将数据写入到文件中,文件也是数据流最常用的数据媒体。
文件的创建与删除
File类创建文件对象,通过使用以下三种构造方法:
(1)File(String pathname)
通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
语法:new File(String pathname)
File file=new File("路径")
(2)File(String parent,String child)
通过给定的父抽象路径名和子路径名字符串创建一个新的File实例。
语法:new File(String parent,String child)
parent:父路径字符串。列如,D:/或D:/doc
child:子路径字符串。列如, test.txt
(3)File(File f,String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
f: 父路径对象。 列如,D:/doc/
child: 子路路径字符串 列如, test.txt
代码:
import java.io.File;
//创建类FileTest
public class FileTest {
public static void main(String[] args) throws Exception {
//创建文件对象
File file=new File("word.txt");
//如果该文件存在
if(file.exists()){
//将文件删除
file.delete();
//输出提示信息
System.out.println("文件已删除");
//如果文件不存在
}else{
//try语句块捕捉可能出现的异常
try{
//创建该文件
file.createNewFile();
//输出提示信息
System.out.println("文件已创建");
}catch(Exception e){
e.printStackTrace();
}
}
}
}
输出结果:
文件已创建
获取文件信息
File类提供了很多方法用于获取一些文件本身信息。
代码:
import java.io.File;
//创建类FileTest
public class FileTest {
public static void main(String[] args) throws Exception {
//创建文件对象
File file=new File("word.txt");
//如果该文件存在
if(file.exists()){
//获取文件名称
String name=file.getName();
//获取文件长度
long length=file.length();
//判断文件是否为隐藏文件
boolean hidden=file.isHidden();
//输出信息
System.out.println("文件名称:"+name);
System.out.println("文件长度是:"+length);
System.out.println("该文件是隐藏文件吗?"+hidden);
//如果该文件不存在
}else{
System.out.println("该文件不存在");
}
}
}
输出结果:
文件名称:word.txt
文件长度是:0
该文件是隐藏文件吗?false
I/O输入输出流的更多相关文章
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- Java中IO流,输入输出流概述与总结
总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...
- 第27章 java I/O输入输出流
java I/O输入输出流 1.编码问题 import java.io.UnsupportedEncodingException; /** * java涉及的编码 */ public class En ...
- java 对象输入输出流
对象的输入输出流的作用: 用于写入对象 的信息读取对象的信息. 对象的持久化. 比如:用户信息. ObjectInputStream : 对象输入流 ...
- 【转】输入/输出流 - 全面掌握IO
File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身 ...
- 输入输出流(IO)
输入输出流(IO)文件(File)java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等), ...
- Java输入/输出流体系
在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流: ...
- JAVA Io 缓冲输入输出流
java中提供带缓冲的输入输出流.在打开文件进行写入或读取操作时,都会加上缓冲,提高了IO读写性能. 1. BufferedInputStream 缓冲输入流 2. BufferedOutputStr ...
- C++输入输出流
一.C++输入输出流的含义 以前所用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上.从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件.程序的输入指的 ...
- Java 输入输出流 转载
转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所 ...
随机推荐
- eclipse如何把多个项目用不同的文件夹分隔开
我们有时候用eclipse时,发现Project Explorer下有非常多的项目,如果大部分不用了还好,我们可以从eclipse上删掉,但是如果还经常会用到的话,删掉了,每次用的时候,还得再重新导入 ...
- DotNetCore跨平台~Quartz定时单次任务
之前写过一篇文件<DotNetCore跨平台~Quartz热部署的福音-监控文件夹的变化>,今天主要把框架优化了一下,支持外部触发,并支持外部将参数以JobDataMap形式进行输入,然后 ...
- Ubuntu操作系统下安装JDK、tomcat、mysql
1.先从安装虚拟机开始 01.首先打开VMware虚拟机. 02.然后,进入home主页,点击"create a New Virtual Machine"一栏,就会弹出一个 ...
- python re group()
python group() 正则表达式中,group()用来提出分组截获的字符串,()用来分组 import re a = "123abc456" print re.search ...
- java程序设计-算术表达式的运算
1.团队课程设计博客链接 洪亚文博客链接:http://www.cnblogs.com/201521123065hyw/ 郑晓丽博客链接:http://www.cnblogs.com/zxl3066/ ...
- Java课程设计---团队博客
课设题目:购物车系统 题目要求: 1.先建立一个文本文件,定义出自己想要的商品.//也可用数据库以商品编号:商品名称:商品品牌:价格作为文件的内容,中间要求用分号或者分割 2.编写程序,定义一个商品类 ...
- JAVA课程设计+五子棋游戏
1. 团队课程设计博客链接 http://www.cnblogs.com/yzb123/p/7063424.html 2. 个人负责模块或任务说明 1.在同伴构建好初始框图的情况下,编写一个继承JPa ...
- MarkDown换行
现象:1,MarkDown编辑两行显示,但是实际显示为一行: 2,编辑状态中空一行,此时显示为也空了一行,界面显示不友好: 解决:在第一行中最后输入至少2个空格+回车即可显示正常:
- 数据库系统概论——Chap. 1 Introduction
数据库系统概论--Introduction 一.数据库的4个基本概念 数据(data):数据是数据库中存储的基本单位.我们把描述事物的符号记录称为数据.数据和关于数据的解释是不可分的,数据的含义称为数 ...
- shell脚本之算术运算和逻辑运算
目录 算术运算 赋值运算 逻辑运算 短路运算和异或 条件测试 数值测试 字符串测试 文件及其属性测试 存在性测试 存在性及类别测试 文件权限测试 文件特殊权限测试 文件大小测试 文件是否打开 双目测试 ...