一:什么是字节?

字节(Byte)是计算信息技术用于计量存储容量和传输容量的一种计量单位,一个字节等于8位二进制数。1byte=8bit=8个0/1

二:字母、数字、汉字与字节关系?

1byte=1个字母=1个数字

2byte=1个汉字

因此如果按照字节一个字节一个字节读取文件的话,读取中文输出的时候会出现乱码(因为一个汉字占二个字节)。

三:读取字节的方式--用来读取数字或者字母代码如下:

package com.javaIo;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

 

/**

 * @按照字节读取文件

 * @author zl

 *

 */

public class ReadFile_By_byte {

  

//注:FileInputStream是按照一个字节一个字节的读取数据的,因为一个中文是二个字节,所以读取中文的时候会出现乱码

public void ReadFile(String path) throws IOException{

 //加载文件

File  F=new File(path);

FileInputStream fis=null;

int count=0;

int sum=0;

 

//创建文件读取流

try {

fis=new FileInputStream(F);

while((count=fis.read())!=-1){

System.out.println((char)count);

sum++;

}

} catch (FileNotFoundException e) {

 

e.printStackTrace();

}finally{

 

if(fis!=null){

fis.close();

}

}

}

public static void main(String[] args) throws IOException{

ReadFile_By_byte rb=new ReadFile_By_byte();

rb.ReadFile("E:/filezl.txt");

}

}

四:使用BufferReader读取中文代码如下:

package com.javaIo;

 

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

 

/**

 * @使用FileBufferReader读取中文

 * @author zl

 *

 */

public class ReadFile_By_BufferRead {

  

public  static void   readFile(String path) throws IOException{

FileReader Fr=null;

BufferedReader br=null;

String content="";

try {

Fr=new FileReader(path);

br=new BufferedReader(Fr);

while((content=br.readLine())!=null){

System.out.println(content);

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

br.close();

Fr.close();

}

System.out.println(content);

}

public static void main(String[] args) throws IOException{

ReadFile_By_BufferRead.readFile("E:/filezl.txt");

}

}