java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
字节流,字符流。字节流继承于 InputStream OutputStream,字符流继承于
InputStreamReaderOutputStreamWriter。在 java.io 包中还有许多其他的流,主要是为了提
高性能和使用方便。
讲讲IO里面的常见类,字节流、字符流、接口、实现类、方法阻塞。
输入流就是从外部文件输入到内存,输出流主要是从内存输出到文件。我们用Eclipse开发小程序在控制台输入数据就属于输入流,即从控制台输入到内存。
IO里面常见的类,第一印象就只知道IO流中有很多类,IO流主要分为字符流和字节流。字符流中有抽象类InputStream和OutputStream,它们的子类FileInputStream,FileOutputStream,BufferedOutputStream等。字符流BufferedReader和Writer等。都实现了Closeable, Flushable, Appendable这些接口。程序中的输入输出都
是以流的形式保存的,流中保存的实际上全都是字节文件。
java中的阻塞式方法是指在程序调用改方法时,必须等待输入数据可用或者检测到输入结束或者抛出异常,否则程序会一直停留在该语句上,不会执行下面的语句。比如read()和readLine()方法。
递归读取文件夹下的文件,代码怎么实现?
利用File中的listFiles方法,将所有文件保存访问,然后递归调用。代码如下:
publicclass Test {
publicvoidvisitFile(String path){
if(path==null){
return;//因为下面的new File如果path为空,回报异常
}
File[] files=new File(path).listFiles();
if(files==null){
return;
}
for(Filefile:files){
if(file.isFile()){
System.out.println(file.getName());
}elseif(file.isDirectory()){
System.out.println("Directory");
visitFile(file.getPath());
}else{
System.out.println("Error");
}
}
}
publicstatic voidmain(String[]args) {
Test dc = new Test();
dc.visitFile("F:/文件");
}
}