Java输入输出处理

本文阅读 3 分钟
首页 代码,Java 正文

1.File类的构造方法

img 案例:

package com.file;
import java.io.File;
public class Test1 { 
    public static void main(String[] args) { 
        File f1=new File("F://Test//java.txt");
        System.out.println(f1);  //F:\Test\java.txt

        File f2=new File("F://Test","java.txt");
        System.out.println(f2);  //F:\Test\java.txt

        File f3=new File("F://Test");
        File f4=new File(f3,"java.txt");
        System.out.println(f4);  //F:\Test\java.txt
    }
}

2.File类的创建

img 案例:

package com.file;
import java.io.File;
import java.io.IOException;
public class Test2 { 
    public static void main(String[] args) throws IOException { 
        //在F盘的Test目录下创建一个test.txt文件
        File f1=new File("F://Test//test.txt");
        System.out.println(f1.createNewFile());  //true
        //在F盘的Test目录下创建一个Spring目录
        File f2=new File("F://Test//Spring");
        System.out.println(f2.mkdir());  //true
        //在F盘的Test目录下创建多个目录
        File f3=new File("F://Test//MyBatis//SpringMVC");
        System.out.println(f3.mkdirs());   //true
    }
}

3.File类判断和获取

img 案例:

package com.file;

import java.io.File;

public class Test3 { 
    public static void main(String[] args) { 
        File f=new File("F:\\Test\\java.txt");
        System.out.println(f.isDirectory());  //false
        System.out.println(f.isFile());  //true
        System.out.println(f.exists());   //true

        System.out.println(f.getAbsoluteFile());   //F:\Test\java.txt
        System.out.println(f.getPath());    //F:\Test\java.txt
        System.out.println(f.getName());   //java.txt

        File f1=new File("F:\\Test");
        String[] list = f1.list();
        for (String s : list) { 
            System.out.println(s); 
 /* a b java.txt MyBatis Spring test.txt TestOne 小飞侠 小马哥*/
        }

        File[] files = f1.listFiles();
        for (File file : files) { 
            System.out.println(file);
/* F:\Test\a F:\Test\b F:\Test\java.txt F:\Test\MyBatis F:\Test\Spring F:\Test\test.txt F:\Test\TestOne F:\Test\小飞侠 F:\Test\小马哥 */
        }
    }
}

4.File类的删除

img 案例:

package com.file;

import java.io.File;
import java.io.IOException;

public class Test4 { 
    public static void main(String[] args) throws IOException { 
        //在当前模块下创建one.txt文件
        File f1=new File("E:\\JavaSE\\Test\\File\\one.txt");  //true
        System.out.println(f1.createNewFile());
        //删除当前模块下创建one.txt文件
        System.out.println(f1.delete());   true
        //在当前模块下创建one目录
        File f2=new File("E:\\JavaSE\\Test\\File\\one");
        System.out.println(f2.mkdir());   true
        //删除当前模块下创建one目录
        System.out.println(f2.delete());   true
    }
}

1.io流的概述和分类

img img

2.字节流

1.字节流写数据

img 案例:

package com.outPutstream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Test1 { 
    public static void main(String[] args) throws IOException { 
        //创建字节输出流对象
        FileOutputStream f = new FileOutputStream("E:\\JavaSE\\Test\\File\\outputStream.txt");
        //将字节写入此文件输出流
        f.write(97);   //a
        //释放资源
        f.close();
    }
}

2.字节流写数据的三种方式

img 案例:

package com.outPutstream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test2 { 
    public static void main(String[] args) throws IOException { 
        //创建字节输出流对象
        FileOutputStream f = new FileOutputStream("E:\\JavaSE\\Test\\File\\outputStream.txt");
        //将字节写入此文件输出流
       /* f.write(97); f.write(98); f.write(99); f.write(100); */  //abcd


        //将指定的字节数组写入此文件输出流
        byte[] bytes={ 97,98,99,100};
        //f.write(bytes); //abcd

        f.write(bytes,1,2);   //bc
        

        //释放资源
        f.close();
    }
}

3.换行和追加

img 案例:

package com.outPutstream;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test3 { 
    public static void main(String[] args) throws IOException { 
        FileOutputStream f = new FileOutputStream("E:\\JavaSE\\Test\\File\\outputStream.txt",true);
        for (int i = 0; i <5 ; i++) { 
            f.write("hello".getBytes());
            f.write("\r\n".getBytes());
        }
        f.close();
    }
}
//执行三次的结果
/* hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello */

4.字节流读数据(一次只能读一个字节)

img 案例:

package com.FileInputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Test1 { 
    public static void main(String[] args) throws IOException { 
        //创建字节输入流对象
        FileInputStream f = new FileInputStream("E:\\JavaSE\\Test\\File\\inputStream.txt");
        //读取数据
        /*int by = f.read(); System.out.println(by); //97 System.out.println((char)by); //a */
        //一次只能读取一个字节
        int by = f.read();
        while (by != -1){ 
            System.out.print((char) by);  //abc
            by=f.read();
        }
        //释放资源
        f.close();
    }
}

5.字节流复制文本文件

案例:

package com.FileInputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test2 { 
    public static void main(String[] args) throws IOException { 
        FileInputStream f1 = new FileInputStream("E:\\JavaSE\\Test\\File\\inputStream.txt");
        FileOutputStream f2 = new FileOutputStream("E:\\JavaSE\\Test\\File\\outputStream.txt");
        int by = f1.read();
        while (by !=-1){ 
            f2.write((char)by);
            by=f1.read();
        }

    }
}

6.字节流读数据(一次读一个字节数组)(复制图片操作一样)

案例:

package com.FileInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Test3 { 
    public static void main(String[] args) throws IOException { 
        FileInputStream f1 = new FileInputStream("E:\\JavaSE\\Test\\File\\inputStream.txt");
        byte[] bytes=new byte[1024];
        int by;
        by = f1.read(bytes);
        while (by !=-1){ 
            System.out.println(new String(bytes,0,by));
            by=f1.read(bytes);
        }

    }
}
/* Java JavaWeb Python Spring Mybatis */

7.字节缓冲流

案例:

package com.BufferStream;

import java.io.*;

public class Test1 { 
    public static void main(String[] args) throws IOException { 
       BufferedOutputStream b1 = new BufferedOutputStream(new FileOutputStream("E:\\JavaSE\\Test\\File\\buffer.txt"));
        b1.write("Hello".getBytes());
        b1.write("\r\t".getBytes());
        b1.write("World".getBytes());
        b1.close();

        BufferedInputStream b2 = new BufferedInputStream(new FileInputStream("E:\\JavaSE\\Test\\File\\buffer.txt"));
        int by = b2.read();
        while (by !=-1){ 
            System.out.print((char)by);
            by=b2.read();
        }
        b2.close();
    }
}

3.字符流

1.字符串中编码解码问题

img

案例:

package com.zifu;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class Test1 { 
    public static void main(String[] args) throws UnsupportedEncodingException { 
        /*String s1="小马哥"; byte[] bytes = s1.getBytes(); System.out.println(Arrays.toString(bytes)); //[-27, -80, -113, -23, -87, -84, -27, -109, -91] //String s=new String(bytes); //小马哥 String s=new String(bytes,"UTF-8"); //小马哥 System.out.println(s);*/

        String s2="小飞侠";
        byte[] bytes =s2.getBytes("GBK");
        System.out.println(Arrays.toString(bytes));  //[-48, -95, -73, -55, -49, -64]

        String s=new String(bytes,"GBK");
        System.out.println(s);  //小飞侠

    }
}

2.字符流中编码解码问题

img

案例:

package com.zifu;

import java.io.*;

public class Test2 { 
    public static void main(String[] args) throws Exception { 
        OutputStreamWriter o = new OutputStreamWriter(new FileOutputStream("E:\\JavaSE\\Test\\File\\java.txt"),"GBK");
        o.write("小飞侠");
        o.close();
        InputStreamReader i = new InputStreamReader(new FileInputStream("E:\\JavaSE\\Test\\File\\java.txt"),"GBK");
        int by = i.read();
        while (by !=-1){ 
            System.out.print((char)by);  //小飞侠
            by=i.read();
        }
    }
}

3.字符流写数据的5种方式

img 案例:

package com.zifu;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class Test3 { 
    public static void main(String[] args) throws Exception { 
        OutputStreamWriter o = new OutputStreamWriter(new FileOutputStream("E:\\JavaSE\\Test\\File\\java.txt"));
        //写一个字符
        o.write("97");  //97
        o.write("a");  //a
        //刷新流
        o.flush();
        //写一个字符数组
        char[] chars={ 'a','b','c','d','e'};  //abcde
        //o.write(chars);

        //写一个字符数组的一部分
        o.write(chars,0,chars.length);  //abcde
        o.write(chars,1,3);  //bcd

        //写一个字符串
        //o.write("xyz"); //xyz

        //写一个字符串的一部分
       o.write("asdfghj",1,5);  //sdfgh
        o.close();
    }
}

4.字符流读数据的2中方式

img 案例:

package com.zifu;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test4 { 
    public static void main(String[] args) throws IOException { 
        InputStreamReader i = new InputStreamReader(new FileInputStream("E:\\JavaSE\\Test\\File\\java.txt"));
        //一次读一个字符数据
        int by = i.read();
        while (by !=-1){ 
            System.out.print((char)by);  //aabcdebcdsdfgh
            by=i.read();
        }
        //一次读一个字符数组
        char[] chars=new char[1024];
        int c = i.read(chars);
        while (c!=-1){ 
            System.out.println(new String(chars,0,c));
            c=i.read(chars);
/* aab cde bcds dfgh */
        }
        
    }
}

5.字符缓冲流

img 案例:

package com.zifu;

import java.io.*;

public class Test5 { 
    public static void main(String[] args) throws IOException { 
        /*BufferedWriter w = new BufferedWriter(new FileWriter("E:\\JavaSE\\Test\\File\\java.txt")); w.write("Hello"); w.write("\r\n"); w.write("World");*/
        BufferedReader r = new BufferedReader(new FileReader("E:\\JavaSE\\Test\\File\\java.txt"));
        int by = r.read();
        while (by!=-1){ 
            System.out.print((char)by);
/* Hello World */
            by=r.read();
        }
        //w.close();
        r.close();
    }
}

6.字符缓冲流特有功能

img 案例:

package com.zifu;

import java.io.*;

public class Test6 { 
    public static void main(String[] args) throws IOException { 
        BufferedWriter w = new BufferedWriter(new FileWriter("E:\\JavaSE\\Test\\File\\java.txt"));
        for (int i = 0; i <5 ; i++) { 
            w.write("Java"+i);
/* Java0 Java1 Java2 Java3 Java4 */
            //换行
            w.newLine();
            w.flush();
        }
        w.close();

        BufferedReader r = new BufferedReader(new FileReader("E:\\JavaSE\\Test\\File\\java.txt"));
        /*String s = r.readLine(); while (s!=null){ System.out.println(s); s=r.readLine(); }*/
        String s;
        while ((s=r.readLine())!=null){ 
            System.out.println(s);

        }
    }
}
/* Java0 Java1 Java2 Java3 Java4 */
本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_43514330/article/details/125165757
-- 展开阅读全文 --
安全面试之XSS(跨站脚本攻击)
« 上一篇 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复