我正在尝试编写一个程序,将一个节点的数据保存到.txt中,但是当我执行该程序时,它应该写的更少(有时甚至没有)。这是代码:
var message = encodeURI($scope.message);
var request = $http.post('api/comment/?message=' + message);
....
GeneradorSeñal和GeneradorSeñalSinusoidal是创建正弦曲线的类。 gs.getSalida()返回正弦曲线的值,正弦曲线类运行良好,不是问题。
答案 0 :(得分:5)
确保始终调用输出流的close()
方法。这可以确保将所有缓冲的数据写入流中。
此外,如果您正在撰写字符,则使用FileWriter
会更方便。
答案 1 :(得分:0)
我改进了你的代码:
... ...
try{
FileOutputStream out = new FileOutputStream("out.txt");
OutputStreamWriter muestras = new OutputStreamWriter(out);
for(int i=0; i<500; i++){
salida=gs.getSalida();
muestras.write(String.valueOf(salida)+"\n");
System.out.println(i+"\t"+salida);
}
muestras.flush();
}catch(Exception e){
e.printStackTrace();
}finally{
if(out!=null){
try{out.close();}
catch(Throwable e){
e.printStackTrace();
}
}
}
最后使用以确保输出流100%关闭。如果out未初始化,则使用“out!= null”。关闭'out'而不是关闭“muestras”,如果out已打开但“muestras”不是。
答案 2 :(得分:0)
试试这个..
try{
for(int i=0; i<500; i++){
salida=gs.getSalida();
muestras.write(String.valueOf(salida)+"\n");
muestras.flush();
System.out.println(i+"\t"+salida);
}
}catch(IOException ioe){
ioe.printStackTrace();
}finally{
try{
muestras.close();
}finally{}
}