黑马程序员_Java基础5

来源:互联网 发布:手机查看cad软件 编辑:程序博客网 时间:2024/05/10 04:39

------- android培训java培训、期待与您交流! ----------


FilenameFileter接口
此接口位于java.io包下,若要在File中使用,可以使用匿名类对象.
示例代码如下:
--------------------------------------------------
File dir  = new File("D:\\java");
String[] fls = dir.list(new FilenameFilter()
{
    public boolean accept(File dir, String name) 
    {
        return name.endsWith(".bmp");
    }  
});
System.out.println("找到符合文件" + fls.length + "个");
for(String name : fls)
{
    System.out.println(name);
}

扩展应用1:根据给定的文件夹,可使用递归方法,遍历文件夹及其子文件夹下的所有文件。
File dir = new File("D://java");
public void showDir(file dir) 
{
File[] files = dir.list();
for(int x=0; x<files.length; x++) 
{
    if(files[x].isDirectory())
    {
        showDir(files[x]);
    } else {
        System.out.println(files[x]);
    }
}
}

扩展应用2:在指定文件夹/目录下,查找指定后缀名的文件,并建立一个此文件清单列表:
思路:
1、根据指定目录,遍历目录下的所有文件,遍历子文件夹时可使用递归方法;
2、在遍历过程中判断,将符合筛选条件的文件对象添加到List集合中;
3、根据指定存储路径并创建文本文件;
4、遍历List集合,将所有文件对象写入文本文件,生成清单列表。

PrintStream字节打印流
PrintStream比其父类或其他字节流方便的地方是:
它可以保证数据原样性,而直接打印输出任何数据类型
println(Xxx x) 将传入的各种基本数据类型进行印输出
write(byte[] buf, int off, int len)
write(int b)
构造函数:
PrintStream(File file)
PrintStream(String filename)
PrintStream(OutputStream out |, boolean autoFlush)
PrintWriter:字符打印流
具备节打印流的功能,专门增强字符打印
构造函数:
PrintWriter(File file)
PrintWriter(OutputStream out |, boolean autoFlush)
PrintWriter(String filename)
常用方法:
print(Xxx x)
println(Xxx x)
write(char[] c |,int off, int len)
write(String s |,int off, int len)

SequenceInputStream: 合并流 
顾名思义:将多个流合并成一个流
此类是InputStream的子类,所以具备InputStream的所有方法:
available()
read()
read(byte[] b, int off, int len)
close()
而且它的作用主要是将多个输入流合并为一个输出流
构造函数:
SequenceInputStream(Enumeration<? extends InputStream> en) 合并枚举对象中的多个流
SequenceInputStream(InputStream s1, InputStream s2) 合并两个流,依次读取到结束。
应用:文件的合并与分割
拓展:以指定集合中的元素创建一个枚举类对象
//方法1(以Vector创建枚举对象):
Vector<String> v = new Vector<String>();
v.add("abc");
v.add("def");
v.add("hij");
v.add("klm");
Enumeration<String> en = v.elements();
while(en.hasMoreElements()) {
    System.out.println(en.nextElement());
}
//方法2(用匿名类创建枚举对象)
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
final Iterator<String> iter = list.iterator();
Enumeration<String> em = new Enumeration<String>(){
@Override
public boolean hasMoreElements() {
    return iter.hasNext();
}
@Override
public String nextElement() {
    return iter.next();
}
};

ObjectOutputStream - 对象的序列化
通过ObjectInputStream流对象将对象写入到指定流,如:保存对象到指定文件中。
writerObject(Object obj)

ObjectInputStream - 对象的反序列化
通过ObjectInputStream流将对象读取出来,如:从指定文件中读取数据,返回对象
Object readObject()
对象序列化/反序列化条件:被序列化的对象须实现Serializable接口。
可对序列化的对象指定序列号,以便于识别 serialVersionUID
注意:1.对象中的静态成员(static)不能被序列化;
      2.如果需要将成员不被序列化,可用tranzision关键字修饰。
 

------- android培训java培训、期待与您交流! ----------

详情请查看:http://edu.csdn.net/heima

原创粉丝点击