黑马程序员技术交流社区
标题:
第六帖之file类、打印流、递归目录、删除目录...(2)
[打印本页]
作者:
fjl_fight
时间:
2013-5-13 14:04
标题:
第六帖之file类、打印流、递归目录、删除目录...(2)
实例二、删除一个文件(delete())
import java.io.File ;
import java.io.IOException ;
public class FileDemo04{
public static void main(String args[]){
File f = new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象
f.delete() ; // 删除文件
}
}
复制代码
实例三
、创建和删除文件(综合运用)
import java.io.File ;
import java.io.IOException ;
public class FileDemo06{
public static void main(String args[]){
File f = new File("d:"+File.separator+"test.txt") ; // 实例化File类的对象
if(f.exists()){ // 判断文件是否存在
f.delete() ; // 删除文件
}else{
try{
f.createNewFile() ; // 创建文件,根据给定的路径创建
}catch(IOException e){
e.printStackTrace() ; // 输出异常信息
}
}
}
}
复制代码
实例四、
创建文件夹(mkdir())
import java.io.File ;
import java.io.IOException ;
public class FileDemo07{
public static void main(String args[]){
File f = new File("d:"+File.separator+"mldn") ; // 实例化File类的对象
f.mkdir() ; // 创建文件夹
}
}
复制代码
实例五、
列出指定目录下的全部文件(list())
import java.io.File ;
import java.io.IOException ;
public class FileDemo08{//
<strong style="color: rgb(70, 70, 70); font-family: simsun; background-color: rgb(188, 211, 229); "><font color="#FF0000" style="word-wrap: normal; word-break: normal; ">列出的文件包括隐藏文件</font></strong>
public static void main(String args[]){
File f = new File("d:"+File.separator) ; // 实例化File类的对象
String str[] = f.list() ; // 列出给定目录中的内容
for(int i=0;i<str.length;i++){
System.out.println(str[i]) ;
}
}
}
复制代码
实例六、
判断一个给定路径是否是目录(isDirectory())
import java.io.File ;
import java.io.IOException ;
public class FileDemo10{
public static void main(String args[]){
File f = new File("d:"+File.separator) ; // 实例化File类的对象
if(f.isDirectory()){ // 判断是否是目录
System.out.println(f.getPath() + "路径是目录。") ;
}else{
System.out.println(f.getPath() + "路径不是目录。") ;
}
}
}
复制代码
实例七、
列出指定目录的全部内容(综合练习)
import java.io.File ;
import java.io.IOException ;
public class FileDemo11{
public static void main(String args[]){
File my = new File("d:" + File.separator) ; // 操作路径
print(my) ;
}
public static void print(File file){ // 递归调用
if(file!=null){ // 判断对象是否为空
if(file.isDirectory()){ // 如果是目录
File f[] = file.listFiles() ; // 列出全部的文件
if(f!=null){ // 判断此目录能否列出
for(int i=0;i<f.length;i++){
print(f[i]) ; // 因为给的路径有可能是目录,所以,继续判断
}
}
}else{
System.out.println(file) ; // 输出路径
}
}
}
}
复制代码
实例八、返回文件的绝对路径
package fjl;
import java.io.File;
public class Demo{
public static void main(String[] args){
File file=new File("F:"+File.separator+"xxx.txt");
String filePath=file.getAbsolutePath();//抽象路径名的绝对路径名字符串
File f=file.getAbsoluteFile();//抽象路径名的绝对路径名形式
System.out.println(f);
System.out.println(filePath);
}
}
复制代码
实例九、复制文件夹及其文件夹中的文件
public class Demo02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
copyFolder(new File("F:\\test"),new File("D:\\fest"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 复制文件夹及其文件
* @param src
* @param dest
* @throws IOException
*/
private static void copyFolder(File src, File dest) throws IOException {
//如果源文件是为文件夹
if (src.isDirectory()) {
//如果目标文件夹不存在
if (!dest.exists()) {
//创建文件夹
dest.mkdir();
}
//列出此文件夹下的文件及目录
String files[] = src.list();
for (String file : files) {
//创建一以源文件src和file文件名的一个新实例
File srcFile = new File(src, file);
// System.out.println(srcFile);
File destFile = new File(dest, file);
// System.out.println(destFile);
// 递归复制
copyFolder(srcFile, destFile);
}
} else { //如果源文件不是为文件夹
//取得输入流
InputStream in = new FileInputStream(src);
//取得输出流
OutputStream out = new FileOutputStream(dest);
//声明byte数组
byte[] buffer = new byte[1024];
int length;
//循环读写
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
//资源关闭
in.close();
out.close();
}
}
}
复制代码
实例十、删除文建夹
package com.fjl;
import java.io.*;
public class DeleteDir{
public static void main(String[] args) {
File dir = new File("f:"+File.separator+"11");
removeDir(dir);
}
public static void removeDir(File dir){
//列出文件
File[] files = dir.listFiles();
for(File file:files){
//判断是否为文件夹
if(file.isDirectory())
removeDir(file);//如果是文件夹,则递归
else
System.out.println(file.toString()+"删除情况:"+file.delete());
}
System.out.println(dir+"删除情况:"+dir.delete());
}
}
复制代码
二、打印流
该流提供了打印方法,可以将各种数据类型的数据都原样打印。
主要有PrintStream和PrintWriter
字节打印流:PrintStream
构造函数可以接收的参数类型:
1,file对象。File
2,字符串路径。String
3,字节输出流。OutputStream
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class PrintDemo01 {//字节打印流
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
//字节打印流
PrintStream out=new PrintStream(new FileOutputStream(new File("f:"+File.separator+"b.txt")),true);
out.println("hello");
out.println("123");
out.print(true);
out.close();
}
}
复制代码
字符打印流:PrintWriter
构造函数可以接收的参数类型:
1,file对象。File
2,字符串路径。String
3,字节输出流。OutputStream
4,字符输出流,Writer。
package com.fjl;
import java.io.*;
public class PrintDemo{//字符打印流
public static void main(String[] args) throws IOException{
//键盘录入
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
//设置自动刷新
PrintWriter out = new PrintWriter(new FileWriter("f:"+File.separator+"a.txt"),true);
String line = null;
while((line=bufr.readLine())!=null){
if("over".equals(line))
break;
out.println(line.toUpperCase());
}
out.close();
bufr.close();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2