java中大小写敏感情况下怎么判断文件是否存在?在线等,急!!!!!

java中大小写敏感情况下怎么判断文件是否存在?在线等,急!!!!!,第1张

File file=new File("文埋旦汪件名")

String name=file.getCanonicalFile().getName()

if(name.equals("迟数大小写敏弯仔感的文件名")){

//TODO:逻辑

}

第一,判读MD5值或SHA-1,以MD5为例,

// 计算文件的 MD5 值

publicstatic String getFileMD5(File file) {

if (!file.isFile()) {

return null

}

MessageDigest digest = null

FileInputStream in = null

byte buffer[] = newbyte[8192]

int len

try {

digest =MessageDigest.getInstance("MD5")

in = new FileInputStream(file)

while ((len = in.read(buffer)) != -1) {

digest.update(buffer, 0, len)

}

BigInteger bigInt = new BigInteger(1, digest.digest())

return bigInt.toString(16)

} catch (Exception e) {

e.printStackTrace()

return null

} finally {

try {

in.close()

} catch (Exception e) {

e.printStackTrace()

}

}

}

第二,直接判读内容,代码如仔团下:

public class IOOperation

{

public static void main(String[] args)

{

FileInputStream File1 = null

FileInputStream File2 = null

BufferedReader in = null

String sFile

if(args.length != 2)

{

System.out.println("The command line should be: java IOOperation testX.txt testX.txt")

System.out.println("X should be one of the array: 1, 2, 3")

System.exit(0)

}

try

{

File1 = new FileInputStream(args[0])

File2 = new FileInputStream(args[1])

try

{

if(File1.available() != File2.available())

{

//长度不同内容肯定不同

System.out.println(args[0] + " is not equal to " + args[1])

}

else

{

boolean tag = true

while( File1.read() != -1 &&File2.read() != -1)

{

if(File1.read() != File2.read())

{

tag = false

break

}

}

if(tag == true)

System.out.println(args[0] + " equals to " + args[1])

else

System.out.println(args[0] + " is not equal to " + args[1])

}

}

catch(IOException e)

{

System.out.println(e)

}

}

catch (FileNotFoundException e)

{

System.out.println("File can't find..")

}

finally

{

try

{

if(File1 != null)

File1.close()

if(File2 != null)

File2.close()

}

catch (IOException e)

{

System.out.println(e)

}

}

}

}

这里因为使用了第二种方法所以直和戚哪接用了main函数,代码结构可以再优化。MD5方法用到了以唤码前没有接触到的知识,如MessageDigest、BigInteger等,个人觉得要想了解这些方法最好的方法就是读API文档。

Java中==和equal的区别为:

1、== 表示 判断2个变量或对象实例是否指向同一个内存空间,equals()表示 判断2个变量或对象实例所指向的内存空间的值是否相同。

2、== 表示 对内存地址进行比较,equals()表示 对字符串的内容进行比较。

3、== 表示引用是否相同饥塌,equals() 表示值是否相同。

扩展资料:

Java compareTo() 方法用于两种烂老圆方式的比较:

(1) 字符串与对含旦象进行比较。

(2) 按字典顺序比较两个字符串。

代码示例:

public class Test {

public static void main(String args[]) {

String str1 = "Strings"

String str2 = "Strings"

String str3 = "Strings123"

int result = str1.compareTo( str2 )

System.out.println(result)

result = str2.compareTo( str3 )

System.out.println(result)

result = str3.compareTo( str1 )

System.out.println(result)

} }

以上程序执行结果为:0, -3, 3

参考资料来源: Java官方文档-Class Object-equals()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8177257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存