[英]Java: Blank File on writing
我正在尝试使用以下功能写入Java中的文件:
public void writeTextFile(String filename, double s){
FileWriter output=null;
try{
output= new FileWriter(filename);
BufferedWriter writer=new BufferedWriter(output);
String ss = String.valueOf(s);
writer.write(ss);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (output != null) {
try {
output.flush();
output.close();
} catch (IOException e) {
}
}
}
}
我也尝试使用:
FileOutputStream out;
PrintStream prt;
try{
out= new FileOutputStream("result");
prt=new PrintStream(out);
prt.println(value);
prt.flush();
prt.close();
}
catch(Exception e){
System.out.println("File write error");}
但是两种方法最终都得到一个空白的输出文件。 需要帮忙!!:(
这会起作用,
public void writeTextFile(String filename, double s){
FileWriter output=null;
try{
output= new FileWriter(filename);
BufferedWriter writer=new BufferedWriter(output);
String ss = String.valueOf(s);
writer.append(ss);
writer.close();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (output != null) {
try {
output.flush();
output.close();
} catch (IOException e) {
}
}
}
}
嘿,这很简单,错误是您没有刷新bufferedwriter,请先刷新然后关闭流。
将此添加到您的第一个代码
public static void writeTextFile(String filename, double s){
FileWriter output=null;
try{
output= new FileWriter(filename);
BufferedWriter writer=new BufferedWriter(output);
String ss = String.valueOf(s);
System.out.println("ss:"+ss);
writer.write(ss);
writer.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (output != null) {
try {
output.flush();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
尝试这个
使用此链接: 文件编写教程
来自链接的代码:
public static void main(String[] args) {
try {
String content = "This is the content to write into file";
File file = new File("/users/mkyong/filename.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
如果尝试:
File file = new File("c:/newfile.txt");
String content = "This is the text content";
try (FileOutputStream fop = new FileOutputStream(file)) {
// if file doesn't exists, then create it
if (!file.exists()) {
file.createNewFile();
}
// get the content in bytes
byte[] contentInBytes = content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
基于本教程: http : //www.mkyong.com/java/how-to-write-to-file-in-java-fileoutputstream-example/
您必须刷新并关闭BufferedWriter而不是FileWriter。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.