我正在使用FFmpeg应用程序来传输带有存储在文件中的文本的实时视频。问题是我必须用新数据更新文件,这些数据必须显示在视频流中。
在Java中,我在循环中做了一个简单的脚本,在/ tmp /文件夹中写了一些字符串,如下所示:
public class FileSaverTS {
public static void main(String[] args) {
DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date d = null;
String s= "";
try {
while (true) {
d = Calendar.getInstance().getTime();
s = df.format(d);
System.out.println("File Saver: " + df.format(d));
PrintWriter out = new PrintWriter("podatki.txt", "UTF-8");
out.write("Test: " + s);
out.close();
Thread.sleep(1000);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(FileSaverTS.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(FileSaverTS.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(FileSaverTS.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FileSaverTS.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
如何用Java原子地编写文件? 来自FFmpeg手册:(确保以原子方式更新,或者可能部分读取,甚至失败)