zoukankan      html  css  js  c++  java
  • 寒假Day59:javaIO流

    文件的一些相关操作:

    java.io.File类 计算机系统中的文件和文件夹
    File不能访问文件内容本身,访问文件内容本身需要使用输入输出流
    文件流;缓冲流 数据流的读写基于内存的操作

    import java.io.File;
    import java.io.IOException;
    
    public class B {
        public static void main(String[] args) {//获取文件
            File f = new File("/Users/cih/Desktop/abc/tt.txt");
            //System.out.println(f.getName());//获取当前文件目录,最后一级 tt.txt
    
            f.renameTo(new File("/Users/cih/Desktop/abc/tt1.txt"));//重命名操作
            File f1 = new File("/Users/cih/Desktop/abc/tt2.txt");
            if (!f1.exists()) {
                try {
                    f1.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            File f2 = new File("/Users/cih/Desktop/abc/123");
            f2.mkdir();//创建单层目录。一层层创建 ,创建123文件夹
            //f2.mkdirs();//直接创建多层目录
        }
    }

    注意一下:获取文件路径的时候

    windows系统:打开文件所在位置,上面有一个框框复制里面的东西即可

    复制过后:一个\是转义符,\\才代表一个斜杠 这个时候对象f就是tt.txt文件,\在文件中是路径的分隔符。在java中\\或者/才是文件的分隔符或者File.separator

    路径例如以下这样子的写法: 

    D:\\text\\abc\\tt.txt

    Mac系统下:

    将文件拖入终端即可显示其所在位置,

    注意:直接复制即可

    File f = new File("/Users/cih/Desktop/abc/tt.txt");

    具体方法:

    IO流一定要抛异常,否则就会报错,如下:


    文件字节流

    具体操作写在注释里了:

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    
    public class CC {
    
        public static void main(String[] args) {
            CC.FileInputStream();
            CC.FileOutputStream();
        }
    
        //文件字节输入流
        public static void FileInputStream() {
            try {
                FileInputStream in = new FileInputStream("/Users/cih/Desktop/abc/tt1.txt");
    
                byte[] b = new byte[100];
                int len = 0;
                while ((len = in.read(b)) != -1) {//要写括号
                    System.out.println(new String(b, 0, len));//数组、need起始位置转换、读取长度
                }
                in.close();//流在使用完毕后要关闭
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        //文件字节输出流
        public static void FileOutputStream() {
            try {
                FileOutputStream out = out = new FileOutputStream("/Users/cih/Desktop/abc/tt3.txt");
                //输出到哪一个文件里,新建tt3
                String str = "jidgidjgiodjgd";
                out.write(str.getBytes());//这里面需要byte类型参数,所以转化一下
                //把数据写入内存中
                out.flush();//把内存中的数据写到硬盘
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
     }

    强调:IO流一定要捕获异常

    捕获操作如下:

    会出现红色波浪线,鼠标放在上面;

    会跳出以下内容: 

    点击More actions之后点击trt/catch即可


    文件字符流

    和文件字节流差不多,但是一些细节需要注意

    import java.io.*;
    
    public class CC {
    
        public static void main(String[] args) {
            CC.FileReader("/Users/cih/Desktop/abc/tt1.txt");
            CC.FileWriter("Hello,world!","/Users/cih/Desktop/abc/tt5.txt");//tt5本来不存在
        }
    
        //文件字符输入流
        public static void FileReader(String inPath) {
            try {
                FileReader fr = new FileReader(inPath);//创建字符输入流的对象
                char[] b = new char[100];//创建临时存放数据的字符数组,这里是char
                int len = 0;
                while ((len = fr.read(b)) != -1) {
                    System.out.println(new String(b, 0, len));//数组、need起始位置转换、读取长度
                }
                fr.close();
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        //文件字符输出流
        public static void FileWriter(String text,String outPath) {//输出的内容、文件
            try {
                FileWriter fw =new FileWriter(outPath);
               fw.write(text); //把数据写入内存中
                fw.flush();//把内存中的数据刷到硬盘
                fw.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
     }
  • 相关阅读:
    【转】小波与小波包、小波包分解与信号重构、小波包能量特征提取 暨 小波包分解后实现按频率大小分布重新排列(Matlab 程序详解)
    IPython:一种交互式计算和开发环境
    python防止字符串转义
    Could not find a version that satisfies the requirement numpy>=1.7.0 (from pan das==0.17.0) (from versions: ) No matching distribution found for numpy>=1.7.0 (from pandas==0.17.0)
    【转】出现“ValueError : numpy.ufunc has the wrong size, try recompiling" 解决方法
    【转】最简单的安装pip的方法
    小波变换教程(十七)
    小波变换补充知识
    小波变换教程(十六)
    C# 保护进程不被结束(源代码)防任务管理器结束进程
  • 原文地址:https://www.cnblogs.com/OFSHK/p/12553726.html
Copyright © 2011-2022 走看看