Java文件大小差值计算方法调用后无输出问题求助
文件大小差值方法无输出问题解决
问题说明
我编写了一个计算两个文件大小差值的diffSize方法,但在Main中调用后终端没有任何输出,不清楚为何diffSize的返回值未被利用。
方法代码
public static long diffSize(String File01, String File02){ //获取第一个文件路径 File file = new File(File01); //获取第二个文件路径 File file2 = new File(File02); //获取第一个文件大小 long bytes = file.length(); //获取第二个文件大小 long bytes2 = file2.length(); //计算差值并返回 return bytes-bytes2; }
Main调用代码
extensions.diffSize("C:\\Users\\katra\\IdeaProjects\\MP1.1\\references\\epfl.png","C:\\Users\\katra\\IdeaProjects\\MP1.1\\references\\epfl.qoi" );
问题原因
你只是调用了方法,但没有对方法返回的结果做任何处理——Java不会自动把方法返回值输出到终端,必须主动打印或者使用这个值才会有输出。
解决办法
方式1:直接打印返回值
把调用代码改成直接打印方法的返回结果:
System.out.println(extensions.diffSize("C:\\Users\\katra\\IdeaProjects\\MP1.1\\references\\epfl.png","C:\\Users\\katra\\IdeaProjects\\MP1.1\\references\\epfl.qoi" ));
方式2:先存变量再打印
如果需要后续使用这个差值,可以先把返回值赋值给变量,再打印:
long sizeDifference = extensions.diffSize("C:\\Users\\katra\\IdeaProjects\\MP1.1\\references\\epfl.png","C:\\Users\\katra\\IdeaProjects\\MP1.1\\references\\epfl.qoi" ); System.out.println("两个文件的大小差值为:" + sizeDifference + " 字节");
额外优化:添加异常处理
当前方法没有处理文件不存在的情况,如果路径错误或文件丢失,file.length()会返回0,导致结果不准确。可以给方法添加异常处理:
import java.io.File; import java.io.FileNotFoundException; public static long diffSize(String File01, String File02) throws FileNotFoundException { File file = new File(File01); File file2 = new File(File02); //检查文件是否存在 if (!file.exists()) { throw new FileNotFoundException("找不到文件:" + File01); } if (!file2.exists()) { throw new FileNotFoundException("找不到文件:" + File02); } long bytes = file.length(); long bytes2 = file2.length(); return bytes - bytes2; }
调用时捕获异常,避免程序崩溃:
try { long diff = extensions.diffSize("C:\\Users\\katra\\IdeaProjects\\MP1.1\\references\\epfl.png","C:\\Users\\katra\\IdeaProjects\\MP1.1\\references\\epfl.qoi" ); System.out.println("文件大小差值:" + diff + " 字节"); } catch (FileNotFoundException e) { System.err.println("错误:" + e.getMessage()); }
内容的提问来源于stack exchange,提问作者KATCHAW
相关产品推荐
相关产品推荐

