我看到Java 8已经大大清理了将文件内容读入String:
String contents = new String(Files.readAllBytes(Paths.get(new URI(someUrl))));
Run Code Online (Sandbox Code Playgroud)
我想知道是否有类似的东西(更干净/更少的代码/更简洁)递归复制目录.在Java 7的土地上,它仍然是这样的:
public void copyFolder(File src, File dest) throws IOException{
if(src.isDirectory()){
if(!dest.exists()){
dest.mkdir();
}
String files[] = src.list();
for (String file : files) {
File srcFile = new File(src, file);
File destFile = new File(dest, file);
copyFolder(srcFile,destFile);
}
} else {
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest);
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0){
out.write(buffer, 0, length);
}
in.close();
out.close();
}
} …
Run Code Online (Sandbox Code Playgroud) 我在Android设备中运行应用程序时发现了一些崩溃,这在模拟器中没有显示.所以我需要将Logcat保存在设备内存或SD卡的文本文件中.你能建议我这样做的好方法吗?
我想要一些Java代码来删除超过N天的文件.
这是我的尝试,但它不能正常工作.
public void deleteFilesOlderThanNdays(final int daysBack, final String dirWay) {
System.out.println(dirWay);
System.out.println(daysBack);
final File directory = new File(dirWay);
if(directory.exists()){
System.out.println(" Directory Exists");
final File[] listFiles = directory.listFiles();
final long purgeTime =
System.currentTimeMillis() - (daysBack * 24 * 60 * 60 * 1000);
System.out.println("System.currentTimeMillis " +
System.currentTimeMillis());
System.out.println("purgeTime " + purgeTime);
for(File listFile : listFiles) {
System.out.println("Length : "+ listFiles.length);
System.out.println("listFile.getName() : " +listFile.getName());
System.out.println("listFile.lastModified() :"+
listFile.lastModified());
if(listFile.lastModified() < purgeTime) {
System.out.println("Inside File Delete");
}
}
}
else
{
} …
Run Code Online (Sandbox Code Playgroud)