欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java IO文件流

程序员文章站 2024-01-21 18:57:22
...
创建文件

 
//add file
       File file =new File("E:\\java用文件","file.txt");
       try{
           file.createNewFile();
           System.out.println("creat ok!");
       }
       catch (IOException e){
           System.out.println("creat go die!");
           e.printStackTrace();
       }

 

  


 删除文件

 
//delete
file.delete();
 

  

 


读取文件数据
 
//way first
File file =new File("E:\\java用文件","file.txt");

                InputStream input = null;
                byte b[] = new byte[(int)file.lenght()];
                                            //根据文件的大小定义数组空间

                try {
                    input = new FileInputStream(file);

                    input.read(b);
                    input.close();

                }catch (IOException ee){
                    ee.printStackTrace();

                }


//way second    常用
File file =new File("E:\\java用文件","file.txt");

                InputStream input = null;
                byte b[] = new byte[(int)file.length()];

                int temp = 0;
                int len = 0;
                try{
                    input = new FileInputStream(file);
                                 //使用FileInputStream为InputStream实例化
                    while((temp = input.read())!= -1)
                    {            //使用while循环读取文件内容,到达结尾是temp=-1
                        b[len] = (byte)temp;
                        len++;
                    }
                    input.close();        //关闭输入流
                }catch(IOException ex){   //捕捉异常
                    ex.printStackTrace();

                }
                System.out.println(new String(b));
 

  



向文件写入内容
 
//会覆盖文件原本内容
File file =new File("E:\\java用文件","file.txt");
                OutputStream out = null;        //声明 OutputStream对象
                String str = "Hello";
                byte b[] = str.getBytes();      //把字符串转换为b数组
                try{
                    out = new FileOutputStream(file);
                                               //用 FileOutputStream实例化OutputStream
                    out.write(b);              //写入数据
                    out.close();               //关闭输出流
                    System.out.println("write ok!");
                }catch (IOException ev){       //捕捉异常
                    System.out.print("write go die!");
                    ev.printStackTrace();      //打印异常
                }



//在末尾追加内容
//将传入FileOutputStream 构造方法中的参数append赋值为true即可
//public FileOutputStream(File dile,boolean append)throws
//FileNotFoundException
 
File file =new File("E:\\java用文件","file.txt");
                OutputStream out = null;        //声明 OutputStream对象
                String str = "Hello";
                byte b[] = str.getBytes();      //把字符串转换为b数组
                try{
                    out = new FileOutputStream(file,true);
                                               //用 FileOutputStream实例化OutputStream,添加true!!!
                    out.write(b);              //写入数据
                    out.close();               //关闭输出流
                    System.out.println("write ok!");
                }catch (IOException ev){       //捕捉异常
                    System.out.print("write go die!");
                    ev.printStackTrace();      //打印异常
                }


//若想换行,可以在需要换行的字符串处添加转义字符"\r\n"即可

  

 

 


字符流

读取文件内容
 
File file =new File("E:\\java用文件","file.txt");

                Reader read = null;       //声明Reader对象
                char c[] = new char[(int)file.length()];
                try
                {
                    read = new FileReader(file);    //使用FileReader实例化Reader
                    read.read(c);
                    read.close();
                }catch (IOException ee){
                    System.out.println("read go die !");
                    ee.printStackTrace();
                }

                System.out.println(c);

  

 



使用while方法读取
   
 File file =new File("E:\\java用文件","file.txt");

                Reader read = null;       //声明Reader对象
                char c[] = new char[(int)file.length()];
                int temp = 0;
                int len = 0;
                try
                {
                    read = new FileReader(file);    //使用FileReader实例化Reader
                    while((temp = read.read())!=-1)
                    {                     //用while读取 到达结尾时temp = -1
                        c[len] = (char)temp; 
                        len++;
                    }
                    read.close();
                }catch (IOException ee){
                    System.out.println("read go die !");
                    ee.printStackTrace();
                }

                System.out.println(c);
 

  


写入
 
//way1
File file =new File("E:\\java用文件","file.txt");

                Writer out = null;
                String str = "lllllll\r\n";
                char c[] = str.toCharArray();
                try{
                    out = new FileWriter(file,true);
                    out.write(c);
                    out.close();
                    System.out.println("write  ok!");
                }catch (IOException ee) {
                    System.out.print("write  go die!");
                    ee.printStackTrace();
                }


//way2
File file =new File("E:\\java用文件","file.txt");

                Writer out = null;
                String str = "lllllll\r\n";

                try{
                    out = new FileWriter(file,true);
                    out.write(str);
                    out.close();
                    System.out.println("write  ok!");
                }catch (IOException ee) {
                    System.out.print("write  go die!");
                    ee.printStackTrace();
                }
 

  



字节流
字节输入流
   
File file = new File ("E:\\java用文件","file.txt");

                InputStream input = null;    //声明InputStream对象
                byte b[]=new byte[(int)file.length()];

                int temp = 0;
                int len = 0;
                try{
                    input = new FileInputStream(file);
                                      //使用FileInputStream为  InputStream实例化
                    while((temp=input.read())!=-1)
                    {
                        b[len]=(byte)temp;
                        len++;

                    }
                    input.close();
                }catch(IOException eq){
                    eq.printStackTrace();

                }
                System.out.println(new String(b));
 

  


字节输出流
 
File file = new File ("E:\\java用文件","file.txt");

                OutputStream out = null;

                String str = "el psy congroo";
                byte b[] = str.getBytes();
                try{
                    out = new FileOutputStream(file,true);

                    out.write(b);
                    out.close();
                    System.out.println("write   ok!!!");
                }catch(IOException ew){
                    ew.printStackTrace();
                    System.out.println("write go die");

                }

  

 



对象序列化
对象序列化是将对象状态转换为可保持或传输的格式的过程
若需要某个对象能支持序列化机制,必须实现Serializable接口


 
class student implements Serializable{

    String number;
    String name;
    String sex;
    String birthday;
    String department;

    public student(String number,String name,String sex,String birthday,String department){
        this.number = number;
        this.name = name;
        this.sex = sex;
        this.birthday = birthday;
        this.department = department;


    }

}
 

  


对象输出流

 
File file =new File("E:\\java用文件","file.txt");

                String name = jtname.getText();
                String number = jtnumber.getText();
                String sex = jtsex.getText();
                String birthday = jtbirthday.getText();
                String department = jtdepartment.getText();

                student stu = new student(number,name,sex,birthday,department);

                FileOutputStream fout = null;
                ObjectOutputStream oos = null;
                try{
                    fout = new FileOutputStream(file,true);  //实例化文件输出流
                    oos = new ObjectOutputStream(fout);      //实例化对象输出流
                    oos.writeObject(stu);                    //把对象写入输出流
                    oos.close();                             //关闭对象输出流
                }catch (IOException er){
                    er.printStackTrace();
                    System.out.println("writeobject go die");
                }
 

  


对象输入流

 
File file =new File("E:\\java用文件","file.txt");
                FileInputStream fis = null;
                ObjectInputStream ois = null;
                try{
                    fis = new FileInputStream(file);
                    ois = new ObjectInputStream(fis);
                    student stu = (student)ois.readObject();   //读取stu对象需要强制转换

                    ois.close();


                    jname.setText(stu.name);
                    jsex.setText(stu.sex);
                    jbirthday.setText(stu.birthday);
                    jdepartment.setText(stu.department);


                }catch (IOException ex){     //捕捉IOException异常
                    ex.printStackTrace();

                }catch(ClassNotFoundException we){    //捕捉ClassNotFoundException异常
                    we.printStackTrace();

                }

  

 

 

上一篇: 玩转php恒量

下一篇: