os_java

  • 输出指定目录下的子目录和子文件
    java
import java.io.*;
import java.util.*;
	//遍历文件夹中的java文件
	public static void print(File file, int n) {
		//n为缩进数,因为每行都比上一行多一个缩进,所以通过传递参数来达到,先构造出缩进
		String s = "";
		for (int i=0; i<n; i++)
			s+="|--";
		
		File[] arr = file.listFiles(new FilenameFilter() {
			@Override
			public boolean accept(File file, String name) {
				return name.toLowerCase().endsWith(".java");
			}
		});
		for (int i=0; i<arr.length; i++) {
			File temp = arr[i];
			if (temp.isDirectory()) {//是不是目录
				print(temp,n+1);
			}
		}
		return ;

	}

	}
	public static void main(String[] args) throws IOException {	
		File f = new File("E:\\aaa");
		System.out.println(f.getName());//f.getName()获取File的名字
		print(f,1);
		return ;
		
	}

}
  • 使用InputStream,OutputStream

使用后要调用close()方法,关闭流,释放资源。且要考虑到InputStream在读取时发生IO错误,也能正常关闭流,释放资源

* 最原始 但读取时若发生IO错误,不能关闭流*
public static void main(String[] args) throws IOException {
	InputStream input=new FileInputSteam("E:\\aaa\\bili\\old.txt")
	int n=-1;
	StringBuilder sb = new StringBuilder("");
	while ((n=input.read()) != -1 ) {
		sb.append((char)n);
	}
	System.out.println(sb);
	input.close();
	return ;
}

* 方法1 推荐*
	public static void main(String[] args) throws IOException {//文件不存在,没有写权限导致写失败等错误封装成IOException异常抛出	
		try (InputStream input=new FileInputSteam("E:\\aaa\\bili\\old.txt")) {
			//编译器自动写入finally调用close()方法,因为InputStream和OutStream都实现了java.lang.AutoCloseable接口
			int n=-1;
			while ((n=input.read()) != -1) {
				System.out.println((char)n);
			}
		}
	
		return ;
		
	}

* 方法2 *
		InputStream input=null;
		try {
			input = new FileInputStream("E:\\aaa\\bili\\old.txt");
			int n=-1;
			while ((n=input.read()) != -1) {
				
				System.out.println((char)n);
				
			}
		} finally {//保证InputStream在读取时发生IO错误,也能正常关闭流,释放资源
			if (input != null) {input.close();}
		}

发布了78 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/puspos/article/details/103504724