我目前有一個工作程序,通過填充零來創建任意大小的文件。這很好,但是我需要做的這些文件的大小是千兆字節,並且這種方法將永遠需要,才能做到這一點。如果任何人都可以閱讀這些代碼,並提供提示,以使其更快,這將不勝感激。優化文件製作程序
public class fileMaker
{
public static void main(String[] args) throws IOException
{
fileMaker fp = new fileMaker();
Writer output = null;
File f = new File(args [1]);
output = new BufferedWriter(new FileWriter(f, true));
output.write("0");
long size = fp.getFileSize(args[1]);
long mem = Long.parseLong(args[0]) * 1073741824; //1 Gigabyte = 1073741824 bytes
while(size < mem)
{
output.write("0");
output.flush();
size = fp.getFileSize(args[1]);
//System.out.println(size + " bytes completed out of " + mem);
double avg = (double)size/mem * 100;
System.out.println(avg + "% complete");
}
output.close();
System.out.println("Finished at - " + size/1073741824 + " Gigabytes");
}
private long getFileSize(String fileName)
{
File file = new File(fileName);
if (!file.exists() || !file.isFile())
{
System.out.println("File does not exist");
return -1;
}
return file.length();
}
}
...這就像問「我怎麼壓縮5GB文件到10KB」 – Doorknob 2013-03-22 12:56:39
林要求更快的方法來填充這個代碼似乎是故意慢文件 – user2007843 2013-03-22 12:58:40
。 – harold 2013-03-22 13:00:01