① java根據文件內容判斷是否是圖片。
這樣,當把一個非圖片文件的擴展名改為jpg、gif或者bmp時,就能繞過限制。所以必須得通過讀取文件內容來進行判斷。這里提供兩種實現代碼。1、ImageInputStream iis = ImageIO.createImageInputStream(resFile);//resFile為需被Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);if (!iter.hasNext()) {//文件不是圖片 System.out.println("此文件不為圖片文件");}2、BufferedImage bi = ImageIO.read(resFile);if(bi == null){ System.out.println("此文件不為圖片文件");}
② 如何用Java判斷兩個文件內容是否相同
如果你維護這些文件列表,並且後期會不定期進行比較,也就是確定一個文件有多次被比較的機會。可以計算這些文件的MD5並緩存起來,後期直接用MD5進行比較。
如果只是臨時性的隨機選兩個文件進行比較,可以先比較文件大小,如果文件大小不同就說明文件內容不相同。如果大小相等的話,可以打開這兩個文件的輸入流,位元組逐一比較,如果中間有不相等的位元組就說明兩個文件不相等,然後直接退出比較,需要注意的是文件流要緩沖(BufferedInputStream)。
之所以不推薦MD5是因為MD5也需要根據文件全部內容計算散列值,可是實際上中途發現有一個位元組不相同就可以判定這兩個文件是不同的,根本沒必要去讀取文件的全部內容。
//in1, in2為兩個文件的輸入流,最後注意流的關閉
int c;
while ((c = in1.read()) != -1) {
if (in2.read() != c) return false;
}
return true;
③ 如何用Java判斷兩個文件內容是否相同
如果你維護這些文件列表,並且後期會不定期進行比較,也就是確定一個文件有多次被比較的機會。可以計算這些文件的MD5並緩存起來,後期直接用MD5進行比較。
如果只是臨時性的隨機選兩個文件進薯碰行比較,可以先比較文件伍雹大小,如果文件大小不同就說明文件內容不相同。如果大小相等的話,可以打開這兩個文件的輸入流,位元組逐一比較,如果中間有不相等的位元組就說明兩個文件不相等,然後直接退出比較,需要注意的是文件流要緩沖(BufferedInputStream)。
之所以不推薦MD5是因為MD5也需要根據文件全部內容計算散列值,可是實際上中途發現有一個位元組不相同就可以判定這兩個文件是不同的,根本沒必要去讀取文件的全部內容。
//in1,
in2為兩個文件的輸入流,數橘談最後注意流的關閉
int
c;
while
((c
=
in1.read())
!=
-1)
{
if
(in2.read()
!=
c)
return
false;
}
return
true;
④ 如何用Java判斷兩個文件內容是否相同
//判斷的辦法是分別將兩個文件讀進來
//先判斷著兩個文件的長度,如果長度不一樣,那肯定不一樣
//如果兩個文件的長度(大小)一樣,那麼就對文件中的每一個位元組進行比對
//只要有一個位元組不同,兩個文件就不同。
//否則兩個文件就是相同的
//代碼如下:(JDK1.4+)(代碼格式被吃掉了,請自己手工排一下)
package 兲髙亻壬鳥飛;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Answer1 {
public static void main(String[] args) {
//文件名要用絕對路徑
//相對路徑也可以,但是容易弄錯
String fileName1 = "xxx";//寫你需要判斷的第一個文件的文件名
String fileName2 = "yyy";//寫你需要判斷的第二個文件的文件名
FileInputStream fis1 = null;
FileInputStream fis2 = null;
try {
fis1 = new FileInputStream(fileName1);
fis2 = new FileInputStream(fileName2);
int len1 = fis1.available();
int len2 = fis2.available();
if (len1 == len2) {//長度相同,則比較具體內容
⑤ java怎樣判斷一個文件中是否存在內容
packagetest1701;
importjava.io.FileInputStream;
importjava.io.IOException;
publicclassTest10{
publicstaticvoidmain(String[]args){
Stringpath="文件路徑";
=null;
try{
fileInputStream=newFileInputStream(path);
if(fileInputStream.available()==0){
System.out.println("文件為空");
}
}catch(Exceptione){
e.printStackTrace();
}finally{
if(fileInputStream!=null){
try{
fileInputStream.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
}