1.每次读取一个字节API--public int read()--每次读取一个字节返回,若字节已经没有可读的返回-1
package io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; public class FileInputStreamDemo01 { public static void main(String[] args) throws IOException { InputStream is = new FileInputStream("Data01"); int num1 = is.read(); System.out.println((char)num1); int num2 = is.read(); System.out.println((char)num2); int num3 = is.read(); System.out.println((char)num3); int num4 = is.read(); System.out.println((char) num4); } }
package io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; public class FileInputStreamDemo01 { public static void main(String[] args) throws IOException { InputStream is = new FileInputStream("Data01"); int num; while ((num = is.read()) != -1) { System.out.print((char)num); } } }
"Date01"内容:ab3爱
结果:在读取‘爱’时出现乱码
每次读取一个字节弊端:
性能较慢读入中文字符输出无法避免乱码问题
2.每次读取一个字节数组的API--public int read(byte[] buffer)--每次读取一个字节数组返回,若字节已经没有可读的返回-1
读取的性能提升读取中文字符无法避免乱码问题
3.一次读完全部字节
--方法一:自己定义一个字节数组和文件的大小一样,然后使用上面的方法(弊端,文件过大时,极容易出现内存溢出)
--方法二:官方定义了一个API--readAllBytes
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)