zoukankan      html  css  js  c++  java
  • 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):

  • 相关阅读:
    健壮性与可靠性
    invoke与call
    协变性和逆变性
    枚举类型和位标记
    MacOs mysql 安装
    scp -本地文件上传服务器,指定端口
    java中的无穷大和无穷小
    calendar类-时间处理类
    linux 下ln命令--笔记
    hdfs 文件系统命令操作
  • 原文地址:https://www.cnblogs.com/lxzh/p/2763846.html
Copyright © 2011-2022 走看看