我是编程新手,目前正在进行产品管理。所以我正在学习绳索。我试过这句话:
public class Tuna {
Formatter f;
public void createfile(){
try{
f = new Formatter("help.text");
f.format("%s%s", "firstname ","lastname");
}
catch (Exception e){
System.out.println("You got an error ");
}
}
现在执行第一个语句并创建一个文件,但是第二个语句不会通过在文件中创建条目来执行。
同时,我创建了一个名为createrecord()
的方法,并插入了f.format(..);
语句。
谁能告诉我这一切是如何运作的?
答案 0 :(得分:0)
首先,你永远不应该捕获异常。相反,尽可能在watch异常类型中捕获。在这种情况下,它将是FileNotFoundException。
其次,您必须关闭格式化程序才能实际释放文件并进行编辑。
适用于我的示例:
//Keep it simple, stupid
$allcodeline = explode(PHP_EOL, $content);
foreach ( $allcodeline as $line => $val ) :
if ( preg_match("#SOMEREGEX#i",$val,$res) ) {
echo $res[0] . '!' . $line . "\n";
}
endforeach;
由于Formatter是AutoClosable,您还可以尝试使用资源:
public class SO41304560 {
public static void main(String[] args) throws Exception {
try {
Formatter formatter = new Formatter("c:/Temp/test.txt");
formatter.format("%s%s", "firstname ","lastname");
formatter.close();
} catch (FileNotFoundException e) {
throw new Exception(e);
}
}
}
答案 1 :(得分:-1)
是的,你可以在一个试块中加入尽可能多的心脏代码(但有关于你应该多少和应该做什么的话)。
第一项业务,这应该是您检查的第一件事。你的文件名是对的吗?它的前缀是.text
还是.txt
?
一旦完成,也不要忘记刷新格式化程序。当你完成它时,请致电f.flush();
答案 2 :(得分:-1)
是的,放入try块的代码数量没有限制,这取决于你需要根据异常控制代码执行的程度。