如何在java中将数据保存到File中?

我有一个问题,就是我有一串数据,我想每次都将它保存到一个单独的文件中。 请给我一个建议。

谢谢,vara kumar.pjd

在de filename中使用时间戳,这样您就可以确定它是唯一的。

import java.io.*; class FileWrite { public static void main(String args[]) { try{ // Create file FileWriter fstream = new FileWriter(System.currentTimeMillis() + "out.txt"); BufferedWriter out = new BufferedWriter(fstream); out.write("Hello Java"); //Close the output stream out.close(); }catch (Exception e){//Catch exception if any System.err.println("Error: " + e.getMessage()); } } } 

这是谷歌很容易的事情。

您不需要自己计算文件名,请查看File.createTempFile 。

来自javadoc:

在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 如果此方法成功返回,则保证:

  1. 在调用此方法之前,返回的抽象路径名表示的文件不存在,并且
  2. 在当前的虚拟机调用中,此方法或其任何变体都不会再次返回相同的抽象路径名。

此方法仅提供临时文件工具的一部分。 要安排自动删除此方法创建的文件,请使用deleteOnExit()方法。

一个class轮。 使用base 36作为id将使文件名更短。

IOUtils.write(text,new FileWriter(Long.toString(System.currentTimeMillis(),36)+“。txt”)));

http://commons.apache.org/io/

一种解决方案可以是,使用随机数生成器来生成随机数。 使用此随机数和一些文本作为文件名。 维护已使用名称的列表,每次保存文件时,如果文件名是唯一的,请检查此列表。

获取具有唯一名称的File对象的一种可能方法是:

 public static File getUniqueFile(String base, String ext, int index) { File f = new File(String.format("%s-%03d.%s", base, index, ext)); return f.exists() ? getUniqueFile(base, ext, index + 1) : f; } 

更新 :这里是基本用法/测试用例:

  String s = "foo string\n"; FileWriter writer = null; for (int i = 0; i < 10; i++) { File f = getUniqueFile("out", "txt", 0); try { writer = new FileWriter(f); writer.write(s); writer.close(); writer = null; } catch (IOException e) { e.printStackTrace(); break; } } if (writer != null) { try { writer.close(); } catch (Exception e) {} }