package com.wl.cases;
import java.io.File;
/**
*
(二) 递归实现输入任意目录,列出文件以及文件夹,效果看图
* @author wanglu
* @date 2016-11-08
*/
public class CaseDemo_2 {
public static void main(String[] args) {
File file = new File("D:");
printMkdirs(file);
}
/*
* 使用递归调用的方式
*/
public static void printMkdirs(File file){
File[] listFiles = file.listFiles();
if(listFiles==null || listFiles.length<0 )
return;
for (int i = 0; i < listFiles.length; i++) {
if(listFiles[i].isDirectory()){
System.out.println(listFiles[i].getAbsolutePath());
printMkdirs(listFiles[i]);
}else{
System.out.println(listFiles[i].getAbsolutePath());
}
}
}
}
package com.wl.cases;
import java.io.File;
/**
* (三) 递归实现列出当前工程下所有.java文件
* @author wanglu
* @date 2016-11-08
*/
public class CaseDemo_3 {
public static void main(String[] args) {
File file = new File("E:\\eclipset\\workspace\\IoDemo");
printProject(file);
}
public static void printProject(File file){
File[] listFiles = file.listFiles();
if(listFiles==null || listFiles.length<0)
return;
for (int i = 0; i < listFiles.length; i++) {
if(listFiles[i].isDirectory()){
//listFiles[i].getName().contains(".java")
printProject(listFiles[i]);
}else{
/*if(listFiles[i].getName().contains(".java")){
System.out.println(listFiles[i].getName());
}*/
if(listFiles[i].toString().endsWith(".java")){
System.out.println(listFiles[i].getName());
}
}
}
}
}
package com.wl.cases;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* (四)从磁盘读取一个文件到内存中,再打印到控制台
* @author wanglu
* @date 2016-11-08
*/
public class CaseDemo_4 {
public static void main(String[] args) {
File file = new File("C:\\Users\\wanglu\\Desktop\\HelloWorld.txt");
printConsole(file);
}
public static void printConsole(File file){
//创建一个字节缓冲输入流
BufferedInputStream bs = null;
InputStreamReader ir = null;
try {
//创建一个字节输入流
FileInputStream fs = new FileInputStream(file);
bs = new BufferedInputStream(fs);
//创建一个转换流,从字节---字符的转换
ir = new InputStreamReader(bs);
//此处表示创建一个长度跟文件长度大小一样的数组(此处需要改进)
char[] b = new char[(int)file.length()];
int len;
StringBuffer sb = new StringBuffer();
if((len = ir.read(b))!= -1){
sb.append(new String(b,0,len));
}
System.out.println(sb);
}catch (IOException e) {
e.printStackTrace();
}finally{
if(ir!=null)
try {
ir.close();
} catch (IOException e) {
e.printStackTrace();
}
if(bs != null)
try {
bs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.wl.cases;
import java.io.FileWriter;
import java.io.IOException;
/**
* (五) 在程序中写一个"HelloJavaWorld你好世界"输出到操作系统文件Hello.txt文件中
* @author wanglu
* @date 2016-11-08
*/
public class CaseDemo_5 {
public static void main(String[] args) {
printToFile();
}
public static void printToFile(){
//定义一个字符输出流
FileWriter fw = null;
try {
//定义一个字符串
String str = "HelloJavaWorld你好世界";
fw = new FileWriter("Hello.txt");
fw.write(str);
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fw != null)
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.wl.cases;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* (六) 拷贝一张图片,从一个目录到另外一个目录下
* 注: 除文本文件外,其他类型的文件都需要要字节流处理
* 所以此处我们需要用到字节流
*/
public class CaseDeom_6 {
public static void main(String[] args) {
File file = new File("C:\\Users\\wanglu\\Desktop\\1.png");
File saveFile = new File("save.png");
copyPhoto(file,saveFile);
}
public static void copyPhoto(File file,File saveFile){
//创建字节缓冲输入流(加速)
BufferedInputStream bs = null;
//创建字节缓冲输出流(加速输出)
BufferedOutputStream bo = null;
try {
//创建字节输入流
FileInputStream fs = new FileInputStream(file);
bs = new BufferedInputStream(fs);
//创建字节输出流
FileOutputStream fo = new FileOutputStream(saveFile);
bo = new BufferedOutputStream(fo);
byte[] b = new byte[1024];
int len;
while((len = bs.read(b))!= -1){
bo.write(b, 0, len);
bo.flush();
}
}catch (IOException e) {
e.printStackTrace();
}finally{
if(bo != null)
try {
bo.close();
} catch (IOException e) {
e.printStackTrace();
}
if(bs != null)
try {
bs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}