文件这个概念我们随时会用到。说到计算机上的文件概念,分为三种:真实的文件,文件夹,虚拟文件(内存或JVM上的)。在Java中要找到和使用文件,就要明白相对路径和绝对路径的概念。相对路径,根据我的理解,就是你在运行一个程序时它所调用的文件所能达到的最大范围。绝对路径很好理解,带上你的盘符就是了。在Linux和W in平台上两者的路径分隔符和名字分隔符不同,所以推荐下面要讲的Java中File类相应属性来区分。
下面来讲一下java.io包下的File类。File类为了实现后面要讲的基于文件的各种操作而定义了许多方法。
File类得属性:
public static String pathSeparator:表示路径分隔符(被表示为一个字符串)
public static String separator:表示名字分隔符(被表示为一个字符串)
public static String pathSeparatorChar:路径分隔符(一个字符)
public static String separator:名字分隔符(一个字符)
File类构造器
File(File parent,String child)
File(String pathname)
File(String parent,String child)
File(URL url)
File类重要方法
boolean canExecute():测试是否可执行
createNewFile():要查找的文件不存在时,创建一个新文件
createTempFile(String prefix,
String suffix,
File directory):在给定路径上创建,使用指定前缀和后缀
boolean delete():删除文件
String getName():获得文件名(不带路径)
boolean exits():是否存在
equals(Object obj):测试此抽象路径名与给定对象是否相等
File getAbsolutePath():获取绝对路径,以文件形式
String getAbsolutePath()
String getParent():返回父目录字符串,若无,返回null
String getPath():获取路径字符串
boolean isDirectory():是否是目录
boolean isFile():是否是文件
long length():长度
String[] list(FileNameFliter fliter): 列出过滤后的文件名字符串数组
File[] listFiles():返回抽象路径数组
static File[] listRoots():返回磁盘分区情况,并放入数组
boolean mkdir():更具对象路径创建一个一级目录。若已存在同名文件,则抛出异常信息
boolean mkdirs():可以创建多级目录
boolean renameTo(File dest):重命名
String toString():返回抽象路径名的路径字符串
异常是我们这些学习者的好朋友。即使一开始你不喜欢它,但还是要试着用它。Java中的异常都是Exception的子类。说说常见的四种异常,第一种是数组越界(不强制检测),第二种是自动转型(子类向父类转型时会强制检测),第三种是空指针异常(即只声明了对象,未实例化,便调用方法等,属于强制检测),第四种便是IO异常(强制检测)了。
要解决出现的异常,Java有一个异常处理机制。
try catch处理机制
try相当于一个优先执行的代码,若是有异常,不符合原来的预期,则送到catch去。一个try可以有多个catch。
示例:try{
可能抛出异常的代码.......
//若没有异常。则执行下面的代码
代码块A
}
catch(Exception ef){
//出现异常时执行的代码
代码块B
}
另外,在catch中可以加上ef.printStackTrace();打印出异常的详细信息。
throws抛出异常
用thorws可以向上抛出异常,但你终究要处理这个异常。在方法体中用throws抛出异常的话,在方法声明中必须加上throws关键字声明。
throw自定义抛出异常
用throw可以自定义抛出一个异常,这时要用throws去接收。
finally
加上finally后,无论怎样,都会执行代码块
最后是流的基础知识:
流本身就是一个抽象的概念,java中将输入和输出抽象为流。流分为输入流和输出流,输入流是我们从某个地方(网络,某个文件)读取东西,输出流是我们将数据发送到某个地方(网络,某个文件,控制台)。除了按方向分可分为输入流和输出流外,按性质分,还可以分为基础字节流(原始流)、过滤流(节点流)、基础数据类型流、对象流。差不多都能按照名字猜得到具体是什么情况。
只说基础字节流中的一些内容。
InputStream是java.io包下的一个抽象类,是基于字节的一个个读取。本身是一个抽象类。
InputStream下的重要方法:
int available():有多少个字节可读
void close():用作关闭流对象
int read():读到末尾是返回-1.会自动读取下一个字节的内容。
int read(byte[] b):用到从流中读到的byte
因为创建的对象是InputStream的子类的对象,所以我们用父类型变量引用,方便统一使用
java.io.InputStream ins = new java.io.FileInputStream(fileName);
File srcFile = new File(fileName);
OutputStream相对于InputStream,在OutputStream定义的常用方法:
void close():原因同InputStream中的.
void flush():将输出流强制输出到目标中(文件或网络上)
void wite(byte[] b, int off, int len):将数组中的一部分写到流中
void wite(byte[] b):将数组写到流中
void write(int b):向流中写入一个byte流
到这里就结束了,由于是课堂小结,属于新手性质,理解错误再所难免,知识也不是很全。不喜勿喷。
分享到:
相关推荐
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存储字符,字符流...
本代码实现将JPG等图片文件转换为字节流并存储在TXT中,方便通信传输时将图片文件存储在数组中
File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、基本数据类型字节流、打印流、对象序列化流、字节数组流)、字符流(缓冲字符流、文件字符流、转换流、格式化输出流、字符数组流) 这份代码源码...
字节流下载到本地.字节流下载到本地.txt字节流下载到本地.txt
非常方便的字节操作插件 可用于网络消息解包压包,字节组装 流协议传输
图片转换成字节流先要转换的IMage对象,转换之后返回字节流。字节流转换成图片,要转换的字节流,转换得到的Image对象,根据图片路径返回图片的字节流,感兴趣的朋友看下下面的代码。 C#将图片和字节流相互转换代码...
javaIO操作各种文件,筛选文件,拷贝文件,上传下载,字符流和字节流都有,根据实际项目情况直接贴就可以了,根据文件类型选择不同的testclss就可以。全部使用效率最高的流
Java字符流和字节流
使用字节流方式操作文件,读取和写入文件,关闭文件
C#应用源码资料
Java文件流知识点梳理总结,IO文件流,包含了File类、缓冲流、字节流、字符流、转换流等
使用字节流方式操作文件,读取和写入文件,关闭文件方法2
Java IO字符流和字节流,讲述了字符传输流和字节传输流的不同和作用
JAVA 字符流与字节流
1.任何数据类型到字节流的转换 2.字节流到任何数据类型的转换 3.字符串按各种格式编码,解码 4.各种进制的转换,一键全转,当然还有反转 小工具,大用途! 工控代码开发,TCP通讯,字节流调试的利器
主要介绍了C#文件和字节流的转换方法,涉及C#将文件以字节流形式读取及将字节流写入文件的相关技巧,需要的朋友可以参考下
IO流——文件操作字节流常用方法 1. 文件操作字节流 1.1 文件操作输入字节流 ileInputStream 文件操作输入字节流 Constructor 构造方法 FileInputStream(File file); 这里是根据提供的File类对象创建对应的文件...
Java中的字节流.
Java字节流 .pdf 学习资料 复习资料 教学资源
普通方法上 和 字节流上传 struts2 文件上传