文件、流总结 博客分类: 知识总结 fileio
1、File类:File类位于java.io包中,我们可以通过File对象的方法创建,删除,修改和查找文件。
例:创建文件:java.io.File file = new java.io.File(path);
删除文件:file.delete();
1)文件系统规则:
1、文件的名字包括文件的路径名和扩展名。
2、同一目录下不会存在同名的目录和文件
3、相对路径是不以路径分隔符开头的文件路径,绝对路径是以根目录开头的路径。
例:文件绝对路径:String path = "D:\\a\\b\\c\\d";
c文件相对d的路径:String path2 = "b\\c.txt";
d文件相对c的路径:String path3 = "..\\d.txt";
4、不同的系统中,分割符是不同的。在win系统中,目录分割符和路径分割符分别是"\"和";",而liunx系统中,目录 分割符和路径分割符分别是"/"和":"。
2)File类的属性:public static Stirng pathSeparator:表示当前操作系统的路径分隔符。
public static String separator:表示当前操作系统的名字分隔符
3)File类的构造器:File(File parent,String child):表示在一个父文件下创建一个child文件。
File(String pathName):创建一个指向pathname的文件对象。
File(String parent,String child):创建一个以parent字符串为父目录名的指向child的文件对象。
后两个构造器只是实例化了文件对象,但是并没有创建文件。
4)File类的方法: boolean exists():判断文件是否存在
例:if(temFile.exists())
String getName():得到文件名字
例:String Name = temFile.getName();
boolean isDirectory():判断文件是否是目录
例:if(temFile.isDirectory())
boolean isFile():判断文件是否是真实文件
例:if(temFile.isFile())
long length():得到文件长度
例:tem.length()
File[] listFiles():将文件下一级的目录和真实文件作为一个数组返回
例:File[] subFile = dirFile.listFiles();
static File[] listRoots():将每个逻辑驱动器作为返回文件的一个元素
例:File fe = File.listRoots();
boolean mkdir():根据文件名字创建一个目录
boolean mkdirs():若文件名字有多级目录,可一次创建
boolean delete():删除文件
boolean createNewFile():创建一个新文件
2、递归:指一种计算方法或方法调用的规则,简单地说就是自己调用自己,所用的方法是相同的。递归算法常用于处理一些无法穷举的计算,但这些计算要有一定的规律。
递归的缺点:容易出现死循环,导致内容溢出。
例: public static void main(String[] args) {
String input=JOptionPane.showInputDialog("please input the number of the disks you want me move.");
int num=Integer.parseInt(input);
move(num,from,mid,to);
}
private static void move(int num, String from2, String mid2, String to2) {
if(num==1){
System.out.println("move disk 1 from "+from2+" to "+to2);
}else {
move(num-1,from2,to2,mid2);
System.out.println("move disk "+num+" from "+from2+" to "+to2);
move(num-1,mid2,from2,to2);
}
}
3、异常:java中的异常为java.lang包下的Exception类。
关键字:1、try:catch关键字常用在try catch或在try catch finally中定义异常处理块,每个try块都必须有一个catch或finally语句
例:try{
可能引发异常的块
}
catch{
处理异常的代码
}
finally{
有无异常都处理的语句
}
2、catch:catch关键字常用在try catch或在try catch finally中定义异常处理块。
3、finally:用来定义在try catch finally中定义的块。
4、throw: 用于引发异常。throw 语句将 java.lang.Throwable 作为参数,Throwable 在调用栈中向上传播,直到被适当的 catch 块捕获。
例:if (error){
throw new IOException("error reading file");
}
5、throws:应用于方法,以便指出方法引发了特定类型的异常。throws 关键字将逗号分隔的java.lang.Throwables 列表作为参数。如果要在 try-catch 块中包含带 throws 子句的方法的调 用,必须提供该方法的调用者。
例:public class MyClass{
public method readFile(String filename) throws IOException{
}
}
4、流:输入和输出的抽象。
1)流的分类:按方向分为:输入流和输出流
按性质分为:字节流:按最小单位读取的流,直接连接到输入流的源。
缓冲流:包装基础流,提高缓冲功能。
对象流:对象流的读取就是java对象序列化(只要是对象,就要进行序列化)。
基与具体数据类型的流:从流中读取指定数据类型的数据。
除字节流外,其它流均不可直接连接到输入流的源。
2)InputStream定义的方法:int avialavle():可读取的有效字节长度。
例:byte[] array = new byte[ins.avialavle()];
void close():关闭流对象。
例:ins.close();
int read():从流中读取数据,若流已到结尾,则返回-1。
例:int read(byte[] b);
3)OutputStream定义的方法:void close():关闭流。
例:out.close();
void flush():将有可能还保存在内存中的数据强制输出到目标中。
例:out.flush();
void write(byte[] b):将数组中内容输出到流中
例:out.write(i);
void write(byte[] b,int off,int len):将数组中一部分写入流中
void write(int b):向流中写入一个字节
4)FileInputStream的构造器:FileInputStream(File file):通过文件对象做参数构造输入流对象
FileInputStream(String name):传入的字符串连接到指定文件的输入流
例:InputStream ins = new FileInputStream(fileName);
5)FileOutputStream的构造器:FileOutputStream(File file):构造输出到指定文件的输出流
FileOutputStream(File file,boolean append):append表示输出到文件的数据是否在已有数据后
FileOutputStream(String name) 例:OutputStream out = new FileOutputStream(txtName);
FileOutputStream(String name,boolean append)
6)BufferedInputStream的构造器: BufferedInputStream(InputStream in):创建一个默认缓冲区大小的缓冲对象
例:BufferedInputStream bis = new BufferedInputStream(ins);
BufferedInputStream(InputStream in,int size):指定缓冲区大小,构造缓冲输入函数
7)BufferedOutputStream的构造器:BufferedOutputStream(OutputStream out):使用默认缓冲区构造缓冲输入流
例:BufferedOutputStream bos = new BufferedOutputStream(out);
BufferedOutputStream(OutputStream out,int size):指定缓冲大小
推荐阅读
-
文件、流总结 博客分类: 知识总结 fileio
-
Java IO流总结 博客分类: Java IO和NIO javaio
-
Android知识总结(一) 博客分类: Android Android
-
Android知识总结(二) 博客分类: Android Android
-
Android知识总结(一) 博客分类: Android Android
-
Android知识总结(二) 博客分类: Android Android
-
java流的总结——从原理分析 博客分类: java IO javaio数据源字节字符
-
文件保存,集合框架总结 博客分类: 知识总结 文件保存集合框架
-
个人总结—— HTML 篇 博客分类: web基础知识 webhtmlchrome
-
java7 新特性 博客分类: java知识总结 java7jdk