import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
public class RandomFiles {
// Generate a random string of given length
static String generateRandomString(int length) {
String charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
StringBuilder sb = new StringBuilder(length);
ThreadLocalRandom rng = ThreadLocalRandom.current();
for (int i = 0; i < length; i++) {
sb.append(charset.charAt(rng.nextInt(charset.length())));
}
return sb.toString();
}
// Generate a random date
static String generateRandomDate() {
ThreadLocalRandom rng = ThreadLocalRandom.current();
int year = rng.nextInt(2000, 2021); // Random year between 2000 and 2020
int month = rng.nextInt(1, 13); // Random month between 1 and 12
int day = rng.nextInt(1, 29); // Random day between 1 and 28
return String.format("%04d-%02d-%02d", year, month, day);
}
// Generate a random file size
static int generateRandomFileSize() {
return ThreadLocalRandom.current().nextInt(1, 100001); // 1–100000 bytes
}
public static void main(String[] args) {
List<String> extensions = List.of(".txt", ".jpg", ".png", ".cpp", ".pdf");
int numberOfFiles = 10;
int fileLength = 9;
for (int i = 0; i < numberOfFiles; i++) {
String fileName = generateRandomString(fileLength);
String extension = extensions.get(ThreadLocalRandom.current().nextInt(extensions.size()));
String date = generateRandomDate();
int fileSize = generateRandomFileSize();
System.out.println(fileName + extension + " " + date + " " + fileSize + " bytes");
}
}
}
/*
run:
VYVjgab1p.cpp 2001-08-21 21278 bytes
qM694nEJk.jpg 2015-05-19 1882 bytes
assCZSzeB.jpg 2009-05-24 19520 bytes
rPU1dIdDV.txt 2011-08-27 71847 bytes
VMLwC4X3s.jpg 2010-08-04 13391 bytes
fEddG6O7Z.cpp 2007-06-18 72556 bytes
jDKBCUsiI.cpp 2019-06-02 4995 bytes
6SwFYqHJd.txt 2012-01-18 68285 bytes
B5gFKGZGA.jpg 2001-06-13 51497 bytes
aeYkX5EPU.pdf 2009-04-16 21547 bytes
*/