使用Java创建大小为1024字节的测试文件
我正在尝试生成大小为1024的文件。代码如下所示使用Java创建大小为1024字节的测试文件,java,file,filewriter,Java,File,Filewriter,我正在尝试生成大小为1024的文件。代码如下所示 import java.security.*; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.BufferedWriter; public class GenerateFile { public static void main(String[] args) { SecureRandom rand
import java.security.*;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.BufferedWriter;
public class GenerateFile {
public static void main(String[] args) {
SecureRandom random = new SecureRandom();
byte[] array = new byte[1024];
random.nextBytes(array);
for(byte i = 0; i<array.length; i++) {
System.out.println(bytes[i]);
}
try {
File file = new File("testfile");
FileWriter out = new FileWriter(file);
out.write(bytes);
System.out.println("Done ..........");
out.close();
if (file.createNewFile()){
System.out.println("File is created!");
}
else {
System.out.println("File already exists.");
}
}
catch (IOException e) {
e.printStackTrace();
}
}
}
谢谢 编写器和读取器是为编写文本而设计的,而不是二进制的。我建议您对二进制文件使用FileOutputStream
// to fill with random bytes.
try (FileOutputStream out = new FileOutputStream(file)) {
byte[] bytes = new byte[1024];
new SecureRandom().nextBytes(bytes);
out.write(bytes);
}
或者,假设每个字符都转换为一个字节,则可以使用以下命令
try (FileWriter out = new FileWriter(file)) {
char[] chars = new char[1024];
Arrays.fill(chars, '.');
chars[1023] = '\n';
out.write(chars);
}
如何用随机数而不是“.”?@Y.V使用
random.nextBytes
,正如您在问题中所做的那样。@Y.V根据定义,文本不是随机的,所以只有二进制才有意义。@Y.V在第一个循环中写入随机字节。你能更具体地说明你需要什么吗?
try (FileWriter out = new FileWriter(file)) {
char[] chars = new char[1024];
Arrays.fill(chars, '.');
chars[1023] = '\n';
out.write(chars);
}