码迷,mamicode.com
首页 > 编程语言 > 详细

java 20 - 8 字节流的文件复制以及汉字在计算机中的存储方式

时间:2016-09-30 15:08:00      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

复制文本文件:把当前目录下的FileIntputStream.java文件里面的内容复制到当前目录的b.txt文件中

  分析
    数据源:
      FileIntputStream.java -- 读取数据 -- FileInputStream
    目的地:
      b.txt --- 写入数据 ---- FileOutputStream

  思路:首先读取数据源的内容,然后把读取到的内容再写入到目的地中
  前提:数据源存在,否则会报错

 1 import java.io.FileInputStream;
 2 import java.io.FileOutputStream;
 3 import java.io.IOException;
 4 public class CopyFileDemo1 {
 5 
 6     public static void main(String[] args) throws IOException {
 7         //首先从数据源中读取数据
 8         //创建字节输入流
 9         FileInputStream in = new FileInputStream("a.txt");
10         //创建字节输出流
11         FileOutputStream out = new FileOutputStream("b.txt");
12         //使用读取字节的方式读取数据
13         int by = 0;
14         while((by = in.read()) != -1){
15             //读取到的数据直接输入到目的地中
16             out.write(by);
17         }
18

        in.close();
        out.close();

19     }
20 
21 }

在上述的a.txt文件中,就算是中文,也能够完整复制到b.txt里面。

原因:因为这里是从数据源中读取数据后,并没有进行转码,又直接复制到目的地中。

 

说到这里,就有个疑问:计算机是怎么对汉字进行存储的?

String s = "中国是我们的祖国;
byte[] bys = s.getBytes();
System.out.println(Arrays.toString(bys));

结果是:[-42, -48, -71, -6, -54, -57, -50, -46, -61, -57, -75, -60, -41, -26, -71, -6]

从就可以看出,在计算中,汉字的存储是分成两个字节的

  第一个字节肯定是负数。
  第二个字节常见的是负数,可能有正数。但是没影响。

java 20 - 8 字节流的文件复制以及汉字在计算机中的存储方式

标签:

原文地址:http://www.cnblogs.com/LZL-student/p/5923519.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!