我被困在一个奇怪的情况我必须创建一个名为abc.dat的.dat文件,但问题是当我创建它然后在我的c:驱动器中我检查扩展名为.dat的文件不是创建的扩展名为_auto_file的文件 已创建,请告知我如何更正我的代码,以便创建.dat文件扩展名...
if ( totaltsers.size()>0){
try {// Generate a file
//File file = new File(
String finalfilename= abamfilepath+ getFileName();
System.out.println(finalfilename);
File file = new File(abamfilepath+ getFileName());
FileOutputStream fileOutputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter bw = null;
Charset charset = Charset.forName("UTF-8");
CharsetEncoder charsetEncoder = charset.newEncoder();
charsetEncoder.onMalformedInput(CodingErrorAction.IGNORE);
fileOutputStream = new FileOutputStream(file.getPath());
outputStreamWriter = new OutputStreamWriter(fileOutputStream, charsetEncoder);
bw = new BufferedWriter(outputStreamWriter);
if (file.exists()){
file.delete();
}
for (tser tser : totaltsers) {
for (toabj bk : books) {
//if (tser.toabjdfr() == null)
if((tser.toabjdfr() == null) &&(tser.ghjk() == null )){
bw.write("aaa");
}
else if (tser.toabjdfr() == null && tser.ghjk() != null ){
bw.write("bb");
}
else if ( tser.toabjdfr() != null && tser.ghjk() == null){
bw.write("ccc");
}
else
bw.write("ddd");
bw.newLine();
}
}
bw.flush();
bw.close();
fileOutputStream.close();
outputStreamWriter.close();
}
catch (Exception e){
String message = "Ate exception : " + e.getMessage();
System.err.println(message);
logger.error(message);
}
}
下面的是构造文件名
public String getFileName() {
return buildFileName();
}
private String buildFileName() {
String filename = "abc";
filename = filename+".dat";
return filename;
我按照建议完成了更改,但仍然无法正常工作..但仍然无法正常工作请提示
String finalfilename= abamfilepath+ getFileName();
System.out.println(finalfilename);
File file = new File(abamfilepath + getFileName());
FileOutputStream fileOutputStream = new FileOutputStream(file.getPath());
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
BufferedWriter bw = new BufferedWriter(outputStreamWriter);
if (file.exists()) {
file.delete();
}
file.createNewFile();
}
答案 0 :(得分:3)
首先,使用文件本身创建FileInputStream,如下所示:
fileOutputStream = new FileOutputStream(file);
然后,在这一行之后:
if (file.exists()){
file.delete();
}
包含代码
file.createNewFile();
这应该可以解决你的问题。
答案 1 :(得分:1)
像File f = new File(file)之类的语句;不会在磁盘上创建文件。类java.io.File
仅表示文件路径,而不是磁盘上的实际文件。
要创建新文件,请为其打开FileOutputStream
,然后您可以使用该文件将数据写入文件。