java_24 FileOutputStream类和FileInputStream类
1.OutputStream 和InputStream
输入和输出:1.参照物都是java程序来惨遭
2.Input输入,持久化上的数据----》内存
3.Output输出,内存---》硬盘
字节输出流:
OutputStream:
定义:流按照方向可以分为输入和输出流,字节流可以操作任何数据,字符流只能操作纯字符数据。
IO流父类:OutputStream和InputStream
IO流程序书写步骤:
1.先导包
2.进行异常处理
3.释放资源
2FileOutputStream
是OutputStream的子类
1.1文件输出流是用于将数据写入 File
或 FileDescriptor
的输出流。
1.2.创建流
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class Demo { public static void main(String[] args) throws Exception { /* 步骤 1创建流 子类对象 绑定数据目的 * 2 调用write() 方法 * 3 close 关闭资源 * * */ FileOutputStream fos = new FileOutputStream( "d:\\aaa.txt" ); // 调用write() 方法 写一个字节 fos.write( 97 ); // 写字节数组 byte [] b = { 65 , 66 , 67 , 68 }; fos.write(b); // 写字节数组的一部分 fos.write(b, 1 , 2 ); //2.3写字符串 getBytes() 字符串转字节 fos.write( "hello world" .getBytes()); //关闭资源 fos.close(); } } |
文件的换行和续写,即每次刷新程序,都会在原有的基础上重新添加数据
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class Demo { public static void main(String[] args) throws Exception { /* * 换行和续写 */ File file = new File( "d:\\b.txt" ); FileOutputStream fos = new FileOutputStream(file, true ); fos.write( "hello\r\n" .getBytes()); fos.write( "world\\r\n" .getBytes()); //关闭流 fos.close(); } } |
3FileInputStream流
是InputStream的子类
2.1FileInputStream
从文件系统中的某个文件中获得输入字节。
2.2创建流
字符读取(读取速度慢)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class Demo { public static void main(String[] args){ // 1创建字节输入流的子类对象 //2 调用方法读取 read //3 关闭资源 try { FileInputStream fis = new FileInputStream( "d:\\aaa.txt" ); int len = 0 ; while ((len=fis.read())!=- 1 ) { System.out.print(( char )len); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
字节数组读取(读取速度快)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public class Demo { public static void main(String[] args){ // 1创建字节输入流的子类对象 //2 调用方法读取 read //3 关闭资源 try { FileInputStream fis = new FileInputStream( "d:\\aaa.txt" ); //创建字节数组 byte [] b = new byte [ 1024 ]; int len = 0 ; while ((len = fis.read(b))!=- 1 ) { System.out.println( new String(b, 0 ,len)); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步