你已经好高了………………坐等更高的 网上找了个JAVA的,看看有用没public class FileUtils { public static final int S_IRWXU = 00700; public static final int S_IRUSR = 00400; public static final int S_IWUSR = 00200; public static final int S_IXUSR = 00100; public static final int S_IRWXG = 00070; public static final int S_IRGRP = 00040; public static final int S_IWGRP = 00020; public static final int S_IXGRP = 00010; public static final int S_IRWXO = 00007; public static final int S_IROTH = 00004; public static final int S_IWOTH = 00002; public static final int S_IXOTH = 00001; public static final class FileStatus { public int dev; public int ino; public int mode; public int nlink; public int uid; public int gid; public int rdev; public long size; public int blksize; public long blocks; public long atime; public long mtime; public long ctime; } public static native boolean getFileStatus(String path, FileStatus status); private static final Pattern SAFE_FILENAME_PATTERN = Ppile("[\\w%+,/=_-]+"); public static boolean copyFile(File srcFile, File destFile) { boolean result = false; try { InputStream in = new FileInputStream(srcFile); try { result = copyToFile(in, destFile); } finally { lose(); } } catch (IOException e) { result = false; } return result; } public static boolean copyToFile(InputStream inputStream, File destFile) { try { if (destFxists()) { destFdelete(); } OutputStream out = new FileOutputStream(destFile); try { byte[] buffer = new byte[4096]; int bytesRead; while ((bytesRead = inputSad(buffer)) >= 0) { write(buffer, 0, bytesRead); } } finally { lose(); } return true; } catch (IOException e) { return false; } } public static boolean isFilenameSafe(File file) { return SAFE_FILENAME_PATTERNatcher(Path())atches(); } public static String readTextFile(File file, int max, String ellipsis) throws IOException { InputStream input = new FileInputStream(file); try { long size = length(); if (max > 0 || (size > 0 && max == 0)) { if (size > 0 && (max == 0 || size < max)) max = (int) size; byte[] data = new byte[max + 1]; int length = ad(data); if (length <= 0) return ""; if (length <= max) return new String(data, 0, length); if (ellipsis == null) return new String(data, 0, max); return new String(data, 0, max) + ellipsis; } else if (max < 0) { // "tail" mode: keep the last N int len; boolean rolled = false; byte[] last = null, data = null; do { if (last != null) rolled = true; byte[] tmp = last; last = data; data = tmp; if (data == null) data = new byte[-max]; len = ad(data); } while (len == length); if (last == null && len <= 0) return ""; if (last == null) return new String(data, 0, len); if (len > 0) { rolled = true; Sarraycopy(last, len, last, 0, length - len); Sarraycopy(data, 0, last, length - len, len); } if (ellipsis == null || !rolled) return new String(last); return ellipsis + new String(last); } else { ByteArrayOutputStream contents = new ByteArrayOutputStream(); int len; byte[] data = new byte[1024]; do { len = ad(data); if (len > 0) write(data, 0, len); } while (len == length); return String(); } } finally { lose(); } } }