import java.io.FileInputStream;import java.io.IOException;publicclassTest{publicstaticvoidmain(String[] args)throws IOException {//使用文件名称创建流对象
FileInputStream fis =newFileInputStream("C:\\Users\\80626\\Desktop\\1.txt");//文件内容: abcde//定义变量,保存数据int b;//循环读取while((b = fis.read())!=-1){
System.out.println((char) b);}//关闭资源
fis.close();}}/*
输出
a
b
c
d
e
*/
import java.io.FileInputStream;import java.io.IOException;publicclassTest{publicstaticvoidmain(String[] args)throws IOException {//使用文件名称创建流对象.
FileInputStream fis =newFileInputStream("C:\\Users\\80626\\Desktop\\1.txt");//文件中为abcde//定义变量,作为有效个数int len;//定义字节数组,作为装字节数据的容器byte[] b =newbyte[2];//循环读取while((len = fis.read(b))!=-1){//每次读取后,把数组变成字符串打印
System.out.println(newString(b));}//关闭资源
fis.close();}}/*
输出
ab
cd
ed
*/
使用数组读取,每次读取多个字节,减少了系统间的IO操作次数,从而提高了读写的效率,建议开发中使用;
错误数据 d ,是由于最后一次读取时,只读取一个字节 e ,数组中,上次读取的数据没有被完全替换,所以要通 过 len ,获取有效的字节:
import java.io.FileInputStream;import java.io.IOException;publicclassTest{publicstaticvoidmain(String[] args)throws IOException {//使用文件名称创建流对象.
FileInputStream fis =newFileInputStream("C:\\Users\\80626\\Desktop\\1.txt");//文件中为abcde//定义变量,作为有效个数int len;//定义字节数组,作为装字节数据的容器byte[] b =newbyte[2];//循环读取while((len = fis.read(b))!=-1){//每次读取后,把数组的有效字节部分,变成字符串打印
System.out.println(newString(b,0, len));// len 每次读取的有效字节个数}//关闭资源
fis.close();}}/*
输出
ab
cd
e
*/
c. FileInputStream 类读取并显示文件
import java.io.FileInputStream;import java.io.IOException;import java.util.Scanner;publicclassTest{publicstaticvoidmain(String[] args){byte[] b =newbyte[1024];//设置字节缓冲区int n =-1;
System.out.println("请输入要读取的文件名:(例如:d:\\hello.txt)");
Scanner scanner =newScanner(System.in);
String str = scanner.nextLine();//获取要读取的文件名try{
FileInputStream in =newFileInputStream(str);//创建字节输入流while((n = in.read(b,0,1024))!=-1){//读取文件内容到缓冲区,并显示
String s =newString(b,0, n);
System.out.println(s);}
in.close();//读取文件结束,关闭文件}catch(IOException e){
System.out.println("文件读取失败");}}}/*
输出
请输入要读取的文件名:(例如:d:\hello.txt)
C:\Users\80626\Desktop\1.txt
ssssaaa手动阀阿斯顿发
*/
import java.io.FileOutputStream;import java.io.IOException;publicclassTest{publicstaticvoidmain(String[] args)throws IOException {// 使用文件名称创建流对象
FileOutputStream fos =newFileOutputStream("fos.txt");// 定义字节数组byte[] words ={97,98,99,100,101};// 遍历数组for(int i =0; i < words.length; i++){// 写出一个字节
fos.write(words[i]);// 写出一个换行, 换行符号转成数组写出
fos.write("\r\n".getBytes());}// 关闭资源
fos.close();}}/*
文件
a
b
c
d
e
*/