⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sequencestream.java

📁 这是清华大学编写的JAVA教材中所有题目的源代码!
💻 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 + -