黑马程序员技术交流社区
标题:
请帮我看看!为何抛空
[打印本页]
作者:
罗磊
时间:
2012-9-25 23:38
标题:
请帮我看看!为何抛空
本帖最后由 屈俊材 于 2012-9-26 07:53 编辑
package com.luolei.copy;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Copy {
private File dirFile;
private String filePath;
public static void main(String[] args) {
new Copy().seeFile("F:\\bb");//这里传一个目录
}
public void seeFile(String dirFile){//这里接收目录
this.dirFile = new File(dirFile);
File[] fileArray =this.dirFile.listFiles();
for(int i=0; i<fileArray.length; i++){//拿到全部的.java文件
if(fileArray
.isFile()){
if(fileArray
.getName().endsWith(".java"))
copy(fileArray
.getName());
}else if(fileArray
.isDirectory()){
seeFile(fileArray
.getAbsolutePath());
filePath = fileArray
.getName();
}
}
}
public void copy(String fileName){将拿到的文件复制到指定的目录
BufferedWriter bw;
BufferedReader br;
try {
// bw = new BufferedWriter(new FileWriter("D:\\"+filePath+".txt",true));
bw = new BufferedWriter(new FileWriter("D:\\b.txt"));
br = new BufferedReader(new FileReader(fileName));
String len =null;
while((len = br.readLine())!=null){
bw.write(len);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
}
我系统有这个文件啦!
还是j抛啦! java.io.FileNotFoundException: a.java (系统找不到指定的文件。)
作者:
hello_world!
时间:
2012-9-26 00:35
你还是把,编译器的结果全部贴上来;
作者:
叶征东
时间:
2012-9-26 00:49
本帖最后由 叶征东 于 2012-9-26 01:14 编辑
public void seeFile(String dirFile){//这里接收目录
this.dirFile = new File(dirFile);
File[] fileArray =this.dirFile.listFiles();
for(int i=0; i<fileArray.length; i++){//拿到全部的.java文件
if(fileArray
.isFile()){
if
(fileArray.getName().endsWith(".java"))//
----可能是这错了,fileArray是个数组,应该是取数组里面的元素,数组里面的元素才是文件.
copy(fileArray.getName());
---->这里也是,
下面的,同理.
}else if(fileArray.isDirectory()){
seeFile(fileArray.getAbsolutePath());
filePath = fileArray.getName();
}
}
系统好像有异常了
,
MT6ZAMN2YXVVX592N{K55.jpg
(2.11 KB, 下载次数: 12)
下载附件
2012-9-26 01:01 上传
会显示为fileArray,
楼主发贴的时候应该也有这个异常.
作者:
张飞年
时间:
2012-9-26 01:53
本帖最后由 张飞年 于 2012-9-26 01:58 编辑
楼主这个代码我觉得我好多问题的,你说的找不到文件是因为,在copy()方法中其实需要的是一个File类型路径,而不是一个文件名。另外还有好多的问题,详细看下面代码:【为什么想设置个注释是蓝色前景的老弄不上】
public class Copy {
private File dirFile;
private String filePath;
public static void main(String[] args) {
new Copy().seeFile("f:\\bb");// 这里传一个目录
}
public void seeFile(String dirFile) {// 这里接收目录
// this.dirFile = new File(dirFile); // <font color="blue"> 注意这里的dirFile是一个String类型而不是一个File类型</font>
File files = null;//<font color="blue">这是改正后的</font>
files = new File(dirFile);
File[] fileArray = files.listFiles();
//System.out.println(fileArray);
for (int i = 0; i < fileArray.length; i++) {// 拿到全部的.java文件
// if(fileArray.isFile()){//<font color="blue">再就是这里,,这里的循环中应该用fileArray[i],这是个小错,注意哈,下面同理都 忆改过来了</font>
if (fileArray[i].isFile()) {// <font color="blue">这里判断内容,不是判断数组对象</font>
if (fileArray[i].getName().endsWith(".java"))
if(fileArray[i].getName() != null){
//System.out.println(fileArray[i].getName());
copy(fileArray[i]);//<font color="blue">这里需要要传递的是一个路径,并非文件名</font>
}
} else if (fileArray[i].isDirectory()) {
seeFile(fileArray[i].getAbsolutePath());
//filePath = fileArray[i].getName<font color="blue">();//不知道这一句是想干 什么</font>
}
}
}
public void copy(File fileName) {// 将拿到的文件复制到指定的目录<font color="blue">// 这里的接收类型同样需要要改过来</font>
BufferedWriter bw = null;//<font color="blue">养成好习惯,随时初始化</font>
BufferedReader br = null;
/*// bw = new BufferedWriter(new
// FileWriter("D:\\"+filePath+".txt",true));*/
try {
bw = new BufferedWriter(new FileWriter("D:\\b.txt",true));//<font style="background-color: lemonchiffon;" color="blue">这里如果想写入一个文件中的话还是加上个true吧</font>
br = new BufferedReader(new FileReader(fileName));
String line = null ;
while((line = br.readLine()) != null){
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
}
复制代码
作者:
罗磊
时间:
2012-9-26 08:26
public class Copy {
private File dirFile;
private String filePath;
public static void main(String[] args) {
new Copy().seeFile("f:\\bb");// 这里传一个目录
}
public void seeFile(String dirFile) {// 这里接收目录
// this.dirFile = new File(dirFile); // <font color="blue"> 注意这里的dirFile是一个String类型而不是一个File类型</font>
File files = null;//<font color="blue">这是改正后的</font>
files = new File(dirFile);
File[] fileArray = files.listFiles();
//System.out.println(fileArray);
for (int i = 0; i < fileArray.length; i++) {// 拿到全部的.java文件
// if(fileArray.isFile()){//再就是这里,,这里的循环中应该用fileArray
,这是个小错,注意哈,下面同理都 忆改过来了
if (fileArray
.isFile()) {// 这里判断内容,不是判断数组对象
if (fileArray
.getName().endsWith(".java"))
if(fileArray
.getName() != null){
//System.out.println(fileArray
.getName());
copy(fileArray
);//这里需要要传递的是一个路径,并非文件名//
呵呵这里就是祸根
}
} else if (fileArray
.isDirectory()) {
seeFile(fileArray
.getAbsolutePath());
//filePath = fileArray
.getName<font color="blue">();不知道这一句是想干 什么//
这句是要讲文件名作为新复制的文件名
}
}
}
public void copy(File fileName) {// 将拿到的文件复制到指定的目录// 这里的接收类型同样需要要改过来//
问题就在这一句!多谢
BufferedWriter bw = null;//养成好习惯,随时初始化//
这句话记住了,谢谢提醒
BufferedReader br = null;
/*// bw = new BufferedWriter(new
// FileWriter("D:\\"+filePath+".txt",true));*/
try {
bw = new BufferedWriter(new FileWriter("D:\\b.txt",true));//这里如果想写入一个文件中的话还是加上个true吧
//这个注释的上一句代码有的!这句是测试代码
br = new BufferedReader(new FileReader(fileName));
String line = null ;
while((line = br.readLine()) != null){
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
}
问题解决啦!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2