黑马程序员技术交流社区
标题:
菜鸟:弄不明白?
[打印本页]
作者:
李志广
时间:
2012-7-16 12:25
标题:
菜鸟:弄不明白?
本帖最后由 007lzg 于 2012-7-16 14:46 编辑
import java.io.*;
class CopyText
{
public static void main(String[] args) throws IOException
{
copy();
}
public static void copy()
{
FileWriter fw=null;
FileReader fr=null;
try
{
fw=new FileWriter("FileReaderDemo2_copy.txt");
fr=new FileReader("FileReaderDmeo2.java");
char[] buf=new char[1024];
int len=0;
while((len=fr.read(buf))!=-1)
{
fw.write(buf,0,len);
}
}
catch (IOException e)
{
throw new RuntimeException("读写有错误!");
}
finally
{
if(fr!=null)
try
{
fr.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
if(fw!=null)
try
{
fw.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
}
}
按照老师视频的步骤写的啊,为什么会有异常呢,能复制文件,但是文件是空的?
作者:
黑马刘涛
时间:
2012-7-16 12:31
本帖最后由 黑马刘涛 于 2012-7-16 12:37 编辑
请问你CopyText.java所在目录里有FileReaderDmeo2.java这个文件吗?
我自己运行下,可以肯定你是在CopyText.java所在目录找不到FileReaderDmeo2.java这样一个文件,FileReaderDmeo2.java这个好像就是老毕写的例子吧
要不就像完整文件名写出来,比如"D:\\360Downloads\\java基础视频教程\\传智播客_Java培训_毕向东_Java基础源代码Codes\\day18\\FileReaderDmeo2.java"
够详细了吧!!!!
作者:
党巾水
时间:
2012-7-16 12:35
请楼主
确保两个文件后缀名没有问题
,这个无关程序,电脑设置是否隐藏了文件后缀名,这个问题当初导致我半个小时没弄出来。
作者:
李东升
时间:
2012-7-16 12:57
<div class="blockcode"><blockquote>public class Lt {
public static void main(String[] args) throws IOException
{
copy();
}
public static void copy()
{
FileWriter fw=null;
FileReader fr=null;
try {
fw=new FileWriter("Lt.txt");
fr=new FileReader("Lt.java");
char[] buf=new char[1024];
int len=0;
while((len=fr.read(buf))!=-1)
{
fw.write(buf,0,len);
}
} catch (IOException e1) {
e1.printStackTrace();
}
finally
{
if(fr!=null)
try
{
fr.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
if(fw!=null)
try
{
fw.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
}
}
复制代码
我把你的catch改了下,使用系统的提示,然后错误信息
java.io.FileNotFoundException: Lt.java (系统找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at luo.cheng.Lt.copy(Lt.java:20)
at luo.cheng.Lt.main(Lt.java:11)
复制代码
又在工作空间找文件,发现只有lt.txt文件。
终于发现问题,程序这个代码程序运行的路径,跟保存这个lt.java的路径不一样。默认这个代码运行程序的路径是项目文件夹下的,而.java保存的路径是src文件夹下的包名文件夹里面的。
作者:
黑马-王言龙
时间:
2012-7-16 12:58
本帖最后由 黑马-王言龙 于 2012-7-16 13:00 编辑
出错原因:FileReaderDmeo2.java文件在编译时没找到
new FileWriter("FileReaderDemo2_copy.txt");
会创建一个新的文件,可由于要copy的原文件不存在(或没有放在编译时目录下),copy过程不成功,结果就出现了一个空的FileReaderDemo2_copy.txt文件
作者:
牛少锋
时间:
2012-7-16 13:04
(1)检查下你的文件名称有没有写错,少个字母啥的,这个很容易出错,最好就是直接拷贝要读取的文件的名称
(2)检查你的路径配置的有没有出错,文件系统有没有找到要读取的文件的路径
作者:
李志广
时间:
2012-7-16 14:47
谢谢各位,粗心大意啊{:soso_e144:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2