Java 字节输入流与字节输出流

一、ASCII码概念
所有的数据存放在计算机中都是以数字的形式存放的。 所以字母就需要转换为数字才能够存放。
比如A就对应的数字65,a对应的数字97. 不同的字母和符号对应不同的数字,就是一张码表。
ASCII是这样的一种码表。 只包含简单的英文字母,符号,数字等等
二、以字节流的形式读取文件内容
InputStream是字节输入流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileInputStream 是InputStream子类,以FileInputStream 为例进行文件读取

      private static void createInputStream() {
//		创建文件对象,写入值ABab
		File f=new File("D:/BugReport.txt");
		FileInputStream fis=null;
		try {
			if(f.exists()) {
//				创建基于文件的输入流
				fis=new FileInputStream(f);
//			    创建字节数组
			    byte[] all=new byte[(int) f.length()];
//			    以字节流形式读取文件,读出的值为字母在ASCII表中的十进制值
			    fis.read(all);
			    for(byte b:all) {
			    	System.out.println(b);
			    }
			    
			}else {
				System.out.println("目标文件不存在");
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
//				关闭资源
//				如果在try作用域关闭,文件不存在,或者读取的时候出现问题而抛出异常,
//				那么就不会执行这一行关闭流的代码,存在巨大的资源占用隐患
				fis.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

三、 以字节流的形式向文件写入数据
OutputStream是字节输出流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileOutputStream 是OutputStream子类,以FileOutputStream 为例向文件写出数据

 private static void createOutputStream() {
		// TODO Auto-generated method stub
		
		File f=new File("d:/fileTest/xxx/outputStream.txt");
		FileOutputStream fos=null;
		try {
			//首先获取文件所在的目录
			File dir=f.getParentFile();
//			判断文件所在目录是否存在
			if(!dir.exists()) {
				dir.mkdirs();
			}
//			准备一个字节数组,
			byte[] data= {88,99,65,97,98};
//			创建基于文件的输出流
			fos=new FileOutputStream(f);
//			把数据写入到输出流,在目标文件中将看到ASCII十进制对应的字符字母
			fos.write(data);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
//			如果在try作用域关闭,文件不存在,或者读取的时候出现问题而抛出异常,
//			那么就不会执行这一行关闭流的代码,存在巨大的资源占用隐患
			if(fos!=null) {
				try {
					fos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

四、createNewFile()和mkdirs() mkdir()
mkdir:只能用来创建文件夹,且只能创建一级目录,如果上级不存在,就会创建失败。
mkdirs:只能用来创建文件夹,且能创建多级目录 ,如果上级不存在,就会自动创建。(创建文件夹多用此)
createNewFile:只能用来创建文件,且只能在已存在的目录下创建文件,否则会创建失败。(FileOutputStream os=new FileOutputStream(file)也可创建文件)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值