了解一下前置知识字符集,我们常见的字符集有ASCII,GBK,UTF-8
GBK中一个字需要两个字节存储
UTF-8中一个字母需要一个字节,并以0开头,一个汉字需要三个字节,与GBK不同的是,他支持的是世界文字,是一种相当通用的字符集
IDEA中的字符集在右下角可以看到,默认是utf-8,
在java中进行编码和解码非常简单
举一个小例子即可
String a="123"; byte[] bytes = a.getBytes(); String b= new String(bytes);
简单来说IO流就是输入Input输出Output流
应用场景:读取文件内容,通过IO进行长久的存储数据,网络对话。
我个人最主要的体验是在写网页的时候进行Excel的导入导出,可以使用IO流完成
java.io包主要包括IO流体系,分为字节流和字符流
字节输入流InputStream,字节输出流OutputStream,字符流Reader,字符输出流Writer。他们都是抽象类
下面是创建输出流管道,并读取文件的字节数据样例
FileInputStream fileInputStream = new FileInputStream("designModel/src/main/resources/123.txt"); System.out.println(fileInputStream.read());//当读取完毕后再次读取会获得-1值,因此如果需要此方法可以使用while(x.read!=-1)作为循环
fileInputStream.close()
上述问题中由于多次与硬件进行交互,后修改读取多个字节到字节数组中,返回读取的字节数量
byte []bytes=new byte[4]; fileInputStream.read(bytes);
当然,上述两个输入流都存在汉字乱码的问题,为此我们需要一次性读取全部字节流,方法1是通过file获取文件的length后填入read
方法2这个java8用不了
byte []bytes=fileInputStream.readAllBytes();
下面是创建输入流管道,并以追加的方式(默认是不追加直接覆盖)
OutputStream os=new FileOutputStream("designModel\\src\\main\\resources\\234.txt",true); byte []bytes="我爱你aq".getBytes(); os.write(bytes); os.close();
标签:java,字节,read,bytes,流中,io,fileInputStream,byte,读取 From: https://www.cnblogs.com/kun1790051360/p/17890897.html