假设file.txt
仅包含“ Hello”。当我编译Java代码时,它会显示
错误:此方法必须在第5行中返回java.lang.String类型的结果。
当我使用readTxt
函数进行打印时,该方法有效,它可以显示“ Hello”。
我已经检查了结果是否正确为String类型,但是它也显示了编译器错误。如何使返回值返回主函数?
import java.io.*;
import java.lang.String;
public class ReadTxtFile {
public static String readTxt(String filePath) {
try {
File file = new File(filePath);
if(file.isFile() && file.exists()) {
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
BufferedReader br = new BufferedReader(isr);
String lineTxt = null;
lineTxt = br.readLine();
//System.out.println(lineTxt);
br.close();
return lineTxt;
} else {
}
} catch (Exception e) {
}
}
public static void main(String[] args) {
String filePath = "C:/file.txt";
String fileword = readTxt(filePath);
System.out.println(fileword);
}
}
答案 0 :(得分:3)
您答应从您的方法中返回一个字符串,因此您现在必须这样做。兑现承诺的唯一方法是引发异常。
tabbarController.ViewControllerSelected -= OnTabbarControllerItemSelected;
这从根本上来说是一个设计问题-如果由于某种原因无法读取文件,您的方法应该怎么做?返回一个特殊字符串,例如“ Error”?返回public static String readTxt(String filePath) { // Here you promise to return a String
try {
...
if(file.isFile() && file.exists()) {
...
return lineTxt; // Here you return a String as promised
} else {
// Here you're missing either return or throw
}
} catch (Exception e) {
// Here you're missing either return or throw
}
}
吗?失败抛出和异常?还有吗?
向自己回答,这将使您清楚如何修复代码。
答案 1 :(得分:0)
您应遵循一些最佳做法,以防止将来出现错误。我试图掩盖它们。并不是说我的是完美的,但您会明白的。
3