import java.io.File; import java.io.FileInputStream; public class FileTest { public static void main(String[] args) { FileInputStream fis = null; try { File file = new File("D://test.txt"); fis = new FileInputStream(file); byte[] b = new byte[(int)file.length()]; while (fis.read(b) != -1) { } System.out.println(new String(b)); } catch (Exception e) { e.printStackTrace(); } } }
或者
//用哪个 bufferedReader 读。 FileReader fr =new FileReader("...txt"); BufferedReader br=new BufferedReader(fr); StringBuffer sb = new StringBuffer(); String str = null; while ((str = br.readLine()) != null) sb.append(str);
两个都属于字节流读取方式。
char 的范围是0~255
byte 的范围是-128~127
用char型就能读出该数据的ASCII字符,
如果用byte读出来就将是数字,并且有可能是负数。
而你这个例子,无疑是想打印出该文件中,各个字节的ASCII码。所以转成了char型,再把char转成int型。
一般纯文本文件,我们都可以用char来读取。
但对于非文本文件,我们就最好用byte来读了,因为我们读到的那个字节很可能不是正数。
FileInputStream file=new FileInputStream("filename"); InputStreamReader isr=new InputStreamReader(file); BufferedReader br=new BufferedReader(isr); try{ String show=br.read()Line(); while(show!=null){ //String show=br.read()Line(); System.out.println(show); show=br.readLine(); } }