java io流个人使用方法总结

 File ac=new File("\\mobile-service\\ad.txt");//表示当前所在盘符的mobile-service文件下的ad.txt文件

使用字节流来读写文件


        try {
            FileInputStream fi=new FileInputStream("G:\\2222\\1.txt");
            FileOutputStream fo=new FileOutputStream("G:\\2222\\2.txt");
            int a;
            while ((a=fi.read())!=-1){/*这里的.read方法是把字
                  节一个接一个的传给a,当为空的时候则返回-1;*/
                fo.write(a);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

使用字符流来读写文件

 try {
        FileReader fr=new FileReader("D:\\21.txt");
        FileWriter fw=new FileWriter("D:\\22.txt");
        int a;
         while ((a=fr.read())!=-1){
         fw.write(a);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });

读取不同的编码文本时候需要进行修正

 try {
                    InputStreamReader ss=new InputStreamReader(new FileInputStream("D:\\21.txt"),"GBK");
                    OutputStreamWriter sw =new OutputStreamWriter(new FileOutputStream("D:\\22.txt"),"GBK");/*如果编码不同则需要
相应的转换一下才可以使用*/
                    int len;
                    char[] wigth=new char[1598];

                    while ((len=ss.read(wigth))!=-1){
                        sw.write(wigth,0,len);
                        System.out.print((char)len);
                    }

更换其输出的位置

  PrintStream sx=new PrintStream(System.out);
            PrintStream ss=new PrintStream("D:\\22.txt");
            System.setOut(ss);
            System.out.println("Sdfdsfsdfdsfsdfdsfsdfdsfssdfsdf");
            System.setOut(sx);
            System.out.println("sdfdfdfdfd");

            BufferedReader bb=new BufferedReader(new  InputStreamReader(System.in));
            InputStreamReader cc=new InputStreamReader(System.in);/*对System.in进行包装,已达到Scanner的效果*/

序列化和反序列化

  • 注意要在类里面添加Serializable接口才可以实现序列化;
    public class User implements Serializable
            ObjectOutputStream dos=new ObjectOutputStream(new  FileOutputStream("D:\\dd.dat"));//这里要传入一个OutputStream类,下面也一样
            dos.writeObject(uu);

            ObjectInputStream dis=new ObjectInputStream(new FileInputStream("D:\\dd.dat"));
             List  a = (List)dis.readObject();
             a.forEach(System.out::println);


随机流的运用

  • public RandomAccessFile(File file, String mode) mode为下面的这几个值;
image.png
     //简单的加密一个文件就只有一个指标,对指标进行操作,核心就是拉扯

        RandomAccessFile fa = new RandomAccessFile(new File("D:\\3.txt"), "rw");
        int a;
        long start=fa.getFilePointer();
        a = fa.read();
        int key = 153;
        while (a != -1) {
            fa.seek(start);
            fa.write(a^key);
            start=fa.getFilePointer();
            a = fa.read();
        }
        fa.close();

你可能感兴趣的:(java io流个人使用方法总结)