• java的io包详解


    AA

    首先来说一下读的问题。

    从文件中读取数据,有两种方法:

    一种是使用FileInputStream,一种是使用FileReader。

    FileInputStream:将文件以二进制流的形式读入到stream中,这里首先需要注意的是文件不单单指的是文本文件还包括图片,影音等任何在计算机上存储的文件。如果是文本文件,比如该文本的文件编码是UTF-8编码,则读入的流就是文本中所有字符的UTF-8编码的字符,如果是GBK,则读入的文件就是GBK编码的流。

    如果想要将文件转化为字符形式,则需要使用InputStreamReader这个类,它是字节和字符之间的桥梁。在InputStreamReader中,可以指定将字节转化为字符的编码形式,比如下面的一条语句。

    InputStreamReader  isr = new InputStreamReader(new FileInputStream(“text.txt”),”UTF-8”);就是将读入的字节流以UTF-8的形式转化为字符。

    一般我们还会使用BufferReader这个类,这个类有很多实用性很强的函数,它以Reader作为构造函数的参数。

    下面来说一下FileReader:

    和FileInputStream一样,它也是以string和file来作为自己的参数。不同的是:1,文件格式比较少,只能是文本格式,而不能是图片或者影音等。2.如果FileReader所在的java源代码是UTF-8格式,而读取的文本是GBK编码,则会出现乱码,java源代码和读取的文本文件的编码必须是一样的,不然会出现乱码,如果没有中文字符,则在有的情况下是不出现乱码的。

    这里还要说一下java中的编码格式,java涉及到两种编码源文件编码和class编码,操作系统的编码可以不用考虑。

    1,使用string.getbytes()得到的是这个string的java源文件的编码,这里做了一个转化,stirng在class中是unicode编码的,先转化为java源文件所对应的编码,然后得到结果。

    2.new string(byte[]),默认是按照java源文件的编码来转换。

    3.  char(int):

  • 相关阅读:
    android intent 隐式意图和显示意图(activity跳转)
    Stack栈的三种含义
    gdi+ 高速绘制透明窗体
    Hibernate Criterion
    iOS安全攻防(三):使用Reveal分析他人app
    Android入门第八篇之GridView(九宫图)
    【Android动画】之Tween动画 (渐变、缩放、位移、旋转)
    Ubuntu下deb包的安装方法
    理解class.forName()
    Myeclipse7.5 下载 安装 注冊 注冊码 100%成功
  • 原文地址:https://www.cnblogs.com/lxzh/p/2763846.html
Copyright © 2020-2023  润新知