我用java里面的BufferedWriter 和 FileInputStream 去拷贝一个文件,在执行代码写入的时候报系统找不到路径,我单独执行这个拷贝方法能够拷贝成功,但是将这个方法融入到整个程序的时候就 报系统找不到路径。但是这个路径是真实存在的。下面是我的拷贝代码:
--------------------------------
BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter("D:/Nets4Auto/" + name + "/result/" + date + "_mds6630log/DetailsInformation.txt",false));
String str = br.readLine();
while(str != null){
bw.write(str);
bw.newLine();
str = br.readLine();
}
-------------------------------------------
try {
FileInputStream fis = new FileInputStream(new File("D:/MDS6630/client/autoput.txt"));
FileOutputStream fos = new FileOutputStream(new File("D:/Nets4Auto/" + name + "/result/" + date + "/DetailsInformation.txt"));
byte[] b = new byte[fis.available()];
fis.read(b);
fos.write(b);
fos.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
--------------------------
用这两种方式拷贝的时候都报错提示是在:BufferedWriter bw = new BufferedWriter(new FileWriter("D:/Nets4Auto/" + name + "/result/" + date + "_mds6630log/DetailsInformation.txt",false));
和FileOutputStream fos = new FileOutputStream(outputString,false);
都是在写入文件的时候报错。
--------------------------------
BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter("D:/Nets4Auto/" + name + "/result/" + date + "_mds6630log/DetailsInformation.txt",false));
String str = br.readLine();
while(str != null){
bw.write(str);
bw.newLine();
str = br.readLine();
}
-------------------------------------------
try {
FileInputStream fis = new FileInputStream(new File("D:/MDS6630/client/autoput.txt"));
FileOutputStream fos = new FileOutputStream(new File("D:/Nets4Auto/" + name + "/result/" + date + "/DetailsInformation.txt"));
byte[] b = new byte[fis.available()];
fis.read(b);
fos.write(b);
fos.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
--------------------------
用这两种方式拷贝的时候都报错提示是在:BufferedWriter bw = new BufferedWriter(new FileWriter("D:/Nets4Auto/" + name + "/result/" + date + "_mds6630log/DetailsInformation.txt",false));
和FileOutputStream fos = new FileOutputStream(outputString,false);
都是在写入文件的时候报错。
解决方案 »
- 想在jsp切入一个视频播放器,遇到点问题!!!
- 将字符串与图片互转
- 再问个问题,你们的程序会要Service层么,好像没什么用啊
- Reader, Book lists(BorrowBookDTO){} 对不对
- Unknown entity:错误,请教高手!!!
- ms sql server2000 for jdbc驱动连接数据库问题
- jbuild中开发ejb时client程序如何写?
- 关于文件操作的两个小问题~!***在线关注,马上给分***
- hibernate + Oracle 执行save操作的时候没有sequence 不执行insert语句
- ssh整合开启Tomact抱错 哪位帮忙看一下
- 类反射获取bean的私有属性不成功。
- ★★★refcursor的值无效(refcursor value is invalid)★★★
/**
* 拷贝文件
* @param srcFile 源文件对象
* @param destDir 目标目录
* @throws UpdateException
* @JTIDUN
*/
public static void copyFile(File srcFile, File destFile){
File destParent = destFile.getParentFile();
if(!destParent.exists()){
destParent.mkdirs();
}
BufferedReader reader = null;
FileOutputStream out = null;
try {
destFile.createNewFile();
reader = new BufferedReader(new FileReader(srcFile));
out = new FileOutputStream(destFile);
StringBuffer sb = new StringBuffer();
String temp = null;
while ( (temp=reader.readLine()) != null ) {
while( temp.endsWith(" ") ){
temp = temp.substring(0, temp.length()-1);
}
sb.append(temp+"\n");
}
out.write(sb.toString().getBytes());
}
catch (IOException ex) {
LOG.error("Failed to copy the file: " + srcFile.getAbsoluteFile(), ex);
}
finally {
if (out != null) {
try {
out.close();
}
catch (Exception ignore) {
}
finally {
out = null;
}
}
if (reader != null) {
try {
reader.close();
}
catch (Exception ignore) {
}
finally {
reader = null;
}
}
if (destFile.exists()) {
try {
destFile.setLastModified(srcFile.lastModified());
}
catch (Exception ignore) {
}
}
}
}
dete 是生成的系统时间。在拷贝这个文件之前也同样向这个路径下的文件中拷贝过日子文件,日志文件拷贝成功,但是拷贝这个文件就报系统找不到路径。
注意:在拷贝的时候这个路径是真实存在的,不会是路径不存在,和文件目录分隔符的影响。在拷贝这个文件的时候前面也想这个路径下拷贝过日志文件就能够拷贝成功。
路径是存在的,这个不用考虑,因为我在调用这个拷贝的时候前面也向这个路径下拷贝过日志文件能够拷贝成功。
文件考入的绝对路径是:D:/Nets4Auto/Chengdu_PES_3links_5waves_80FullWave_WSD9_WSM9_7OBUs_noOAU/result/2011-01-21_09-01-32_mds6630log/DetailsInformation.txt
java.io.FileNotFoundException: D:\Nets4Auto\Chengdu_PES_3links_5waves_80FullWave_WSD9_WSM9_7OBUs_noOAU\result\2011-01-21_09-01-32_mds6630log\DetailsInformation.txt (系统找不到指定的路径。)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at DKF37458.SingleTools.copyInformation(SingleTools.java:829)
at T2000Script.公共功能.D_MDS.D_波分调测(D_MDS.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at com.huawei.ifree.autotest.tdf.testAsset.repository.fs.suitetable.cmd.TCmdStd.execute(TCmdStd.java:423)
at com.huawei.ifree.autotest.tdf.runner.SuiteTableRunner.visit(SuiteTableRunner.java:123)
at com.huawei.ifree.autotest.tdf.testAsset.repository.fs.suitetable.cmd.TCmdStd.accept(TCmdStd.java:243)
at com.huawei.ifree.autotest.tdf.testAsset.repository.fs.suitetable.SuiteTable.accept(SuiteTable.java:84)
at com.huawei.ifree.autotest.tdf.runner.SuiteTableRunner.run(SuiteTableRunner.java:38)
at com.huawei.ifree.autotest.tdf.runner.CycleTableRunner.runSuiteTable(CycleTableRunner.java:183)
at com.huawei.ifree.autotest.tdf.runner.CycleTableRunner.visit(CycleTableRunner.java:139)
at com.huawei.ifree.autotest.tdf.testAsset.repository.fs.cycletable.cmd.TCmdCdd.accept(TCmdCdd.java:165)
at com.huawei.ifree.autotest.tdf.testAsset.repository.fs.cycletable.CycleTable.accept(CycleTable.java:85)
at com.huawei.ifree.autotest.tdf.runner.CycleTableRunner.run(CycleTableRunner.java:84)
at com.huawei.ifree.autotest.tdf.runner.SetTableRunner.runCycleTable(SetTableRunner.java:743)
at com.huawei.ifree.autotest.tdf.runner.SetTableRunner.visit(SetTableRunner.java:241)
at com.huawei.ifree.autotest.tdf.testAsset.repository.fs.settable.cmd.TCmdSet.accept(TCmdSet.java:131)
at com.huawei.ifree.autotest.tdf.runner.SetTableRunner.visit(SetTableRunner.java:694)
at com.huawei.ifree.autotest.tdf.testAsset.repository.fs.settable.cmd.TSheetSet.accept(TSheetSet.java:53)
at com.huawei.ifree.autotest.tdf.runner.SetTableRunner.run(SetTableRunner.java:142)
at com.huawei.ifree.autotest.tdf.engine.TdfExecutionEngine.runTestAssetInner(TdfExecutionEngine.java:283)
at com.huawei.ifree.autotest.tdf.engine.TdfExecutionEngine.run(TdfExecutionEngine.java:125)
at com.huawei.ifree.autotest.CommonLauncher.run(CommonLauncher.java:105)
at ObjectMapBuilder.testMain(ObjectMapBuilder.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at com.rational.test.ft.sys.FtReflection.invokeMethod2Ext(FtReflection.java:1253)
at com.rational.test.ft.sys.FtReflection.invokeMethodExt(FtReflection.java:1453)
at com.rational.test.ft.sys.FtReflection.invokeMethodExt(FtReflection.java:1806)
at com.rational.test.ft.script.RationalTestScript.runMainInner(RationalTestScript.java:997)
at com.rational.test.ft.script.RationalTestScript.runMain(RationalTestScript.java:922)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at com.rational.test.ft.sys.FtReflection.invokeMethod2Ext(FtReflection.java:1253)
at com.rational.test.ft.sys.FtReflection.invokeMethodExt(FtReflection.java:1453)
at com.rational.test.ft.sys.FtReflection.invokeMethodExt(FtReflection.java:1806)
at com.rational.test.ft.application.ScriptPlayback.runScript(ScriptPlayback.java:731)
at com.rational.test.ft.application.ScriptPlayback.run(ScriptPlayback.java:669)
at com.rational.test.ft.application.RationalFtMain.run(RationalFtMain.java:2349)
at com.rational.test.ft.application.RationalFtMain.main(RationalFtMain.java:329)
at com.rational.test.ft.application.CommandLineApplication.run(CommandLineApplication.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:574)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:195)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
at org.eclipse.core.launcher.Main.main(Main.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at com.rational.test.ft.rational_ft.startFT(rational_ft.java:291)
at com.rational.test.ft.rational_ft.main(rational_ft.java:185)