publicstaticvoidgetFileSize(Stringpath){
//傳入文件路徑
Filefile=newFile(path);
//測試此文件是否存在
if(file.exists()){
//如果是文件夾
//這里只檢測了文件夾中第一層如果有需要可以繼續遞歸檢測
if(file.isDirectory()){
intsize=0;
for(Filezf:file.listFiles()){
if(zf.isDirectory())continue;
size+=zf.length();
}
System.out.println("文件夾"+file.getName()+"Size:"+(size/1024f)+"kb");
}else{
System.out.println(file.getName()+"Size:"+(file.length()/1024f)+"kb");
}
//如果文件不存在
}else{
System.out.println("此文件不存在");
}
}
② java 獲取一個文件夾內的各個文件大小並復制大於等於10k的文件
只需要使用遞歸就可以了
import java.io.File;
public class Demo {
public static void main(String[] args) {
File fileDir = new File("C:/Users/Administrator/Desktop/prex");
getFiles(fileDir);
}
public static void getFiles(File fileDir) {// 操作文件
if (!fileDir.exists()) {
new RuntimeException();
}
File[] files = fileDir.listFiles();
if (files != null) {// 判斷是否還有子目錄
for (int i = 0; i < files.length; i++) {
if (files[i].isFile() && files[i].length() == 10 * 1024) {// 判斷是文件,且大小為10k
files[i].renameTo(new File(// 轉存儲到指定的位置,名字和原來一樣
"C:/Users/Administrator/Desktop/", files[i]
.getName()));
} else {
getFiles(files[i]);// 遞歸調用,直到所有的文件都沒有了子目錄
}
}
}
}
}
③ java file 獲取文件大小 ,是什麼單位
1、java file 獲取文件大小 ,單位是kb,File.length()獲得文件位元組大小/1024 獲得 KB數, 由於整數運算省略小數部分,故加1。
2、目前Java獲取文件大小的方法有兩種:
1)通過file的length()方法獲取。
2)通過流式方法獲取。
④ Java 判斷文件大小
public static void main(String[] args) {
File file = new File("D:/201709201336160.05V");
getFileSize(file);
}
/**
* 獲取文件大小
* @param file
*/
public static void getFileSize(File file) {
FileInputStream fis = null;
try {
if(file.exists() && file.isFile()){
String fileName = file.getName();
fis = new FileInputStream(file);
System.out.println("文件"+fileName+"的大小是:"+fis.available()+"\n");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(null!=fis){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
這個可以判斷大小 輸出的是byte 你轉化一下MB就行了
⑤ java文件流,一位元組等於多少kb
你的代碼是do {
in.read(b,0,1024);//讀取1024位元組到數組b
out.write(b,0,1024);//把數組b的1024位元組的內容寫入out關聯的文件
} while (in.available() > 0);//當文件未到末尾時繼續做循環體的內容
你從in讀取1024,然後向out寫1024,再讀,再寫直到文件結尾,當然可以讀寫100K的文件啦,多大的文件都行。
文件流操作的時候會自動記錄下一個文件內部位置,只要流未關閉,就從上次位置接著操作
⑥ 如何用java獲取網路文件的大小
你好,這邊有一個示例代碼,希望對你有所幫助。示例中的urlString,你可以下載之後看看是否跟列印信息大小一致。我這邊是一致的。
p:所導入的包都是java.net下面的。
main方法中 直接調用這個函數即可。
staticintgetNetWorkFile(){
StringurlString="https://img-blog.csdn.net/20180323154952670?watermark/2/text/==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70";
intlength=0;
URLurl;
try{
url=newURL(urlString);
HttpURLConnectionurlcon=(HttpURLConnection)url.openConnection();//打開連接
//根據響應獲取文件大小
length=urlcon.getContentLength();
urlcon.disconnect();//關閉連接
}catch(Exceptione){
e.printStackTrace();
}
System.out.println(length);
returnlength;
}
⑦ java中FileInputStream的available() 方法的作用是什麼
①如果要從網路中下載文件時,我們知道網路是不穩定的,也就是說網路下載時,內read()方法是阻塞的,容說明這時我們用inputStream.available()獲取不到文件的總大小。
此時就需要通過
HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
httpconn.getContentLength();//獲取文件長度
來獲取文件的大小。
②如果是本地文件的話,用此方法就返回實際文件的大小。
③這個方法其實是通過文件描述符獲取文件的總大小,而並不是事先將磁碟上的文件數據全部讀入流中,再獲取文件總大小。
希望能用心去體會一下,選擇性使用
⑧ 如何用java獲取linux下某文件夾的大小
通過FileInputStream來獲取的文件大小:
public static void main(String[] args) {
FileInputStream fis= null;
try{
File f= new File("D:\\CentOS-6.5-x86_64-bin-DVD1.iso");
fis= new FileInputStream(f);
logger.info(fis.available());
}catch(Exception e){
logger.error(e);
} finally{
if (null!=fis){
try {
fis.close();
} catch (IOException e) {
logger.error(e);
}
}
}
}
下面是運行結果:
2147483647
它是Integer.MAX_VALUE,也就是有符號整型能表示的最大數值。