异常
- 当程序运行时,可能会出现各种异常,如RunTimeException, IOException等等。
- 如果程序已经定义了对特定异常的处理,则异常会被捕获。
- 一旦异常被捕获,程序就会执行对应的异常处理代码。
- 异常处理完毕后,程序会从捕获异常的地方继续运行。
对于 try catch 和finally,
try包裹的是可能出现异常的代码,当代码没有出现异常时,catch包裹的语句不会实现,但是出现异常时会执行catch,以此给调用者一些信息,而finally则是无论是否出现异常,都会实现.
具体实际例子,比如在io流的数据传输时,出现数据包破损啊指针越界之类的和代码的编译错误没有关系的,执行catch给调用者提示出现错误的信息.而finally之所以无论是否出现异常都会执行,绝大多数是为了防止出现异常后代码无法释放空间.
适用条件:发生错误时,会停止执行接下来的程序,出现的异常会导致程序崩溃。所以使用 try/catch/finally
来处理错误对以后项目的维护很重要。
常见形式:
try...catch
try...finally
try...catch..finally
io流
以下为io流写入文档内容和对文档内容进行sout代码展示 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileOutputStream1 { public static void main(String[]args) throws IOException { FileOutputStream fos=new FileOutputStream("windy.txt",true); String str="\r\n"; byte[] arr=str.getBytes(); String str1="My favorite character is windy."; String str2="and I like Noel too."; byte[] arr1=str1.getBytes(); fos.write(arr1); fos.write(arr); byte[] arr2=str2.getBytes(); fos.write(arr2); fos.write(arr); fos.close(); FileInputStream fis=new FileInputStream("windy.txt"); byte[]txt=new byte[10]; int b; while((b= fis.read())!=-1) { System.out.print((char) b); } fis.close(); } }
getbyte方法用于将字符串转化为数组
write方法用于写入文档(参数可为数组)
其中while的判断条件其实是当读取不到字符时(字符-1)停止.