Java 文件创建过程损坏
我遇到了一个奇怪的情况,我必须创建一个名为abc.dat的.dat文件,但问题是,当我创建它时,我在c:驱动器中检查扩展名为.dat的文件,而不是创建扩展名为_auto_的文件,请告知我如何更正代码,以便创建扩展名为.dat的文件Java 文件创建过程损坏,java,file-io,writer,Java,File Io,Writer,我遇到了一个奇怪的情况,我必须创建一个名为abc.dat的.dat文件,但问题是,当我创建它时,我在c:驱动器中检查扩展名为.dat的文件,而不是创建扩展名为_auto_的文件,请告知我如何更正代码,以便创建扩展名为.dat的文件 if ( totaltsers.size()>0){ try {// Generate a file //File file = new File( String finalfilename= abamfilepath+
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();
}
问题仍然是相同的dat文件未创建,而是创建了大小为0的类型为_auto_file gt的文件
File outFile = new File("numbers.dat");
BufferedWriter writer = new BufferedWriter(new FileWriter(outFile));
writer.write("12");
writer.close();
如果您仍然无法创建文件,可能与windows根驱动器上的权限有关。您的操作系统是否安装在C驱动器上?如果是,请尝试更改创建文件的位置