( FileInputStream 和 FileOutputStream ) 利 用 FileInputStream 和FileOutputStream,完成下面的要求:
1) 用 FileOutputStream 在当前目录下创建一个文件“test.txt”,并向文件 输出“Hello World”,如果文件已存在,则在原有文件内容后面追加。
2)用 FileInputStream 读入 test.txt 文件,并在控制台上打印出 test.txt 中的内容。
3)要求用 try-catch-finally 处理异常,并且关闭流应放在 finally 块中。
package test9;
//Eclipse导包快捷键"ctrl+shift+o"
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Test {
public static void main(String[] args) {
OutputStream os = null;//关流操作在finally代码块中,所以不能在try中创建对象
InputStream is = null;
try {
os = new FileOutputStream("test.txt");
is = new FileInputStream("test.txt");
String s = "Hello World";
os.write(s.getBytes());//这两行是通过FileOutputStream直接把字符写进文件的方式
while (true) {//写死循环,一直输出,通过break结束
int a = is.read();//返回值是通过编码表反编译了的数字,int类型
if (a == -1)//到达文件末尾时,返回-1
break;
System.out.print((char) a);//强转为char类型,用代码表编译成字符
}
} catch (Exception e) {
e.printStackTrace();//catch代码块里写死的就写这行代码,到哪都一样
} finally {
try {
if (os != null)//严谨一些,防止try中没附上值
os.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (is != null)
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}