黑马程序员技术交流社区
标题:
复制文件出现的问题
[打印本页]
作者:
demown
时间:
2014-4-29 22:30
标题:
复制文件出现的问题
/*需求:复制文件
思路:1,先创建一个文件。
2,在创建一个与要拷贝文件相关联的流。
3,在创建一个数组容器将文件内容读取到数组中,在讲数组中的内容写入到提前创建好的文件中
4,关闭流。
*/
import java.io.*;
public class IOLX1 {
public static void main(String[] ages)throws IOException
{
copy_2();
}
public static void copy_2()
{
FileReader fr = null;
FileWriter fw = null;
try
{
fw = new FileWriter("abcde11.txt");
fr = new FileReader("IOLX.java");
char[] buff = new char[1024];
int len=0;//定义一个变量,来描述读取的字符数。
while((len=fr.read(buff))!=-1)
{
fw.write(buff,0,len);
}
}
catch(IOException e){throw new RuntimeException("读写失败");}
finally
{
if(fw!=null)
{
try
{
fw.close();
}
catch(IOException e){throw new RuntimeException("路径不正确");}}
if(fr!=null)
{
try
{
fr.close();
}
catch(IOException e)
{throw new RuntimeException("没有这个文件");}
}}
}
}
复制代码
结果是这样的
Exception in thread "main" java.lang.RuntimeException: 读写失败
at IOLX1.copy_2(IOLX1.java:28)
at IOLX1.main(IOLX1.java:11)
当前目录有这个文件 看图 但是还是读取失败
QQ截图20140429222914.png
(97.23 KB, 下载次数: 9)
下载附件
2014-4-29 22:29 上传
这是我的当前目录
作者:
小流氓123
时间:
2014-4-29 23:29
挺好的。加油
作者:
来男.
时间:
2014-4-29 23:43
你把我这段码贴上:
import java.io.*;
class Demo
{
public static void main(String[] args)
{
copy_2();
}
public static void copy_2(){
FileReader fr = null;
FileWriter fw = null;
try
{
fw = new FileWriter("abcde11.txt");
fr = new FileReader("IOLX.java");
char[] buff = new char[1024];
int len=0;
while((len=fr.read(buff))!=-1)
{
fw.write(buff,0,len);
}
}
catch(IOException e){
throw new RuntimeException("读写失败");
}finally{
if(fw!=null){
try{
fw.close();
}catch(IOException e){
throw new RuntimeException("路径不正确");
}
}
if(fr!=null){
try{
fr.close();
}catch(IOException e){
throw new RuntimeException("没有这个文件");
}
}
}
}
}
1、你下面都try了,上面主函数就不用throws了。
2、你下面代码有一处多了个“}”。
应该行了。
作者:
skill20
时间:
2014-4-29 23:59
文件的路径对了么?
代码看上去靠谱。
作者:
小流氓123
时间:
2014-4-30 00:59
纠结的。。好好学习视频
作者:
程序爱好者
时间:
2014-4-30 08:37
看了一下你的代码应该没错 ! 我以前做的这题的时候就是路径错了 你改个绝对路径看看
作者:
lren
时间:
2014-4-30 09:57
package fw.wei.demo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class CopyFile {
public static void main(String[] args) {
copy();
}
public static void copy() {
BufferedReader in = null;
BufferedWriter out = null;
try {
//初始化流
in = new BufferedReader(new InputStreamReader(new FileInputStream("E:/CopyFile.java")));
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E:/CopyFile.txt")));
char[] buffer = new char[1024 * 5];
int len = 0;
//拷贝文件内容
while((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);;
out.flush();
}
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
//关闭流
if (in != null) {
try {
in.close();
} catch (IOException e) {
in = null;
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
out = null;
}
}
}
}
}
复制代码
拷贝文件注意事项:
1、文件是否存在
2、文件路径是否正确
3、文件编码使用的是GBK,还是UTF-8(防止乱码情况发生)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2