• JAVA中怎么使用FileInputStream和FileOutputStream读写文件? FileInputStream的用法详解
  • 发布于 2个月前
  • 247 热度
    3 评论
  • 雅晴
  • 1 粉丝 1 篇博客
  •   
对于很多刚学JAVA的同学来说对于什么是FileInputStream对象,以及这个对象的用法都不是很熟悉,只知道可以用这个对象来进行文件的读取,对于具体如何使FileInputStream和FileOutputStream读写文件却是一脸迷茫,本文将演示一下如何用字节流FileInputStream和FileOutputStream来读写文件,希望对那些需要使用FileInputStream和FileOutputStream对象来读写文件的同学有所帮助。
[java] view plain copy
package FileStream;  
import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.util.Scanner;  
public class File_Stream {  
    public static void main(String[] args) throws IOException {  
        Scanner sca=new Scanner(System.in);  
        //写文件  
        System.out.print("请输入文件名:");  
        String name=sca.next();  
        File file=new File(name+".txt");//文件名        相对路径(项目名根目录下)  
//      FileOutputStream fs=new FileOutputStream(file);                //如果文件存在 覆盖  
        FileOutputStream fos=new FileOutputStream(file,true);//true表示追加,如果文件存在 向里面继续添加内容  
        System.out.println("请输入写入的内容:");  
        String str=sca.next();  
        byte bytes[]=str.getBytes();         //FileOutputStream 是基于字节流  把要写入的信息 保存到字节数组中  
        fos.write(bytes,0,bytes.length);//将字节数组中全部内容写到文件中   从0—数组的长度  
        fos.close();//关闭流  
        System.out.println("文件写入成功!");  
        //读文件  
        FileInputStream fis=new FileInputStream(file);  
        byte bt[]=new byte[1024];//1KB       每次最多读取的1KB  根据文件大小而定  
        int temp=0;  
        while((temp=fis.read(bt))!=-1){    //将数据保存到数组(缓冲区)中 并返回读取的字节数  -1表示读完了  
            System.out.println(new String(bt,0,temp));//输出数组中保存内容 按照每次读取的字节数  
        }  
        fis.close();  
    }  
}  

运行结果:

由于FileInputStream和FileOutputStream是基于字节流的,所以每次都需要定义byte数组对读写进行操作。
PS:如果单独读取一个文件时,出现了乱码。可能是字符集不同,Eclipse默认为GBK,IDEA默认为UTF-8,改成对应的字符集即可。
用户评论
  • 王髪
  • 石更生  2018-04-16 10:12
    雅晴  2018-04-15 12:27
    有写的不好的地方大家多多指教哦
    不会,美女写的很棒
    [鄙视]这马屁拍的
  • 2018/4/18 9:33:00 [ 0 ] [ 0 ] 回复