当前位置: 代码迷 >> java >> 尝试用Java编写文件
  详细解决方案

尝试用Java编写文件

热度:59   发布时间:2023-07-31 13:33:01.0

我在尝试使用此代码在Java(使用Windows)数据中写入数据时遇到问题,我在其中创建目录(实际上已创建),但是在创建文件时失败了

String rutaescribir="C"
        + ":"
        + "\\"
        + "Users\\EmanuelJosé\\Desktop\\Cplexjava\\memoria\\java"
        + numesc + "esc\\";

Writer writer5=null;// si lo usas acuerdate de cerrarlo
java.io.File directorio5 = new File(rutaescribir+"inf");
directorio5.mkdir();
String directorio523=rutaescribir+"inf\\";          
try {
    writer5 = new BufferedWriter(new OutputStreamWriter(
            new FileOutputStream(directorio523+"inf"+num+".txt"), "utf-8"));
    writer5.write(numesc+"\r\n");
    writer5.write("hola");

}
} catch (IOException ex) {
     ex.printStackTrace();
} finally {
    try {writer5.close();} catch (Exception ex) {//ignore}
    }
}

在相同的代码中,我还有其他文件要写,但是它们可以工作,我会寻找任何差异,但这是相同的...这里是一个工作示例

Writer writer =null;//

java.io.File directorio1 = new File(rutaescribir+"heuristica");
String directorio12=rutaescribir+"heuristica\\";
directorio1.mkdir();
try {
    writer = new BufferedWriter(new OutputStreamWriter(
            new FileOutputStream(directorio12+"heuristica"+num+".txt"), "utf-8"));
    writer.write(numesc+"\r\n");        

}
} catch (IOException ex) {
    ex.printStackTrace();
    // report
} finally {
    try {writer.close();} catch (Exception ex) {//ignore}
    }
}

我真的没什么区别。。。我不知道为什么其中一些有效,而另一些却无效。...请帮助!

我得到的错误是:

java.io.FileNotFoundException: C:\Users\EmanuelJosé\Desktop\Cplexjava\memoria\java3esc\infactiblidades\infactib??ilidades0.txt (El sistema no puede encontrar la ruta especificada)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at memoria.bosques.imprimirenarchivos2(bosques.java:19758)

因此没有创建文件,但是为什么呢? 至少我看到该文件夹??存在。

尝试换线

directorio5.mkdir();

directorio5.mkdirs();

这样可以确保在路径结构中创建所有目录。 使用mkdir()仅在路径中创建最后一个目录。 您也没有测试mkdir()的返回值来检查目录是否实际创建,即

if (directario5.exists() || directario5.mkdirs()){
    // Go ahead, because our directory is now guaranteed to exist.
}
  相关解决方案