📄 sequencestream.java
字号:
import java.io.*;
import java.util.*;
class SequenceStream
{
public static void main(String args[])
{
try
{
//实例化MyFileFilter类
MyFileFilter fFilter = new MyFileFilter("test2","java");
//创建顺序输入流
SequenceInputStream in = new SequenceInputStream(fFilter);
//创建输出文件对象
FileOutputStream out = new FileOutputStream("test2\\sum.java");
//每次读取的字符
int bContent;
//从文件输入流中读取内容
while((bContent = in.read())!=-1)
{
//写到文件输出对象
out.write(bContent);
}
//关闭顺序输入流
in.close();
//关闭文件输出对象
out.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
class MyFileFilter implements Enumeration
{
File directory;
String extension;
String strFileList[];
MyFilenameFilter filter;
int nCounter;
//构造方法
MyFileFilter(String strDirectoryName,String extension)
{
this.extension = extension;
//创建目录对象
directory = new File(strDirectoryName);
if(directory.isDirectory())
{
//如果是目录,获取目录中所有文件
filter = new MyFilenameFilter(extension);
strFileList = directory.list(filter);
}
else
{
//如果不是目录,获取当前文件
strFileList = new String[1];
strFileList[0] = strDirectoryName;
}
nCounter = 0;
}
//判断枚举中是否还有元素的方法
public boolean hasMoreElements()
{
if(nCounter<strFileList.length)
return true;
else
return false;
}
//获取枚举中下一元素的方法
public Object nextElement()
{
//如果还有元素
if(hasMoreElements())
{
nCounter++;
//返回文件输入流对象
FileInputStream fis=null;
try
{
fis=new FileInputStream(directory.getAbsoluteFile()+"\\"+strFileList[nCounter-1]);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return fis;
}
else
return null;
}
}
class MyFilenameFilter implements FilenameFilter
{
//扩展名
String extension;
//构造方法
MyFilenameFilter(String extension)
{
this.extension = extension;
}
//测试文件的扩展名是否为extension
public boolean accept(File directory,String filename)
{
return filename.endsWith("."+extension);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -