zoukankan      html  css  js  c++  java
  • java文件操作 it

    IO流:

    低效O:

    FileWriter初始化操作

    FileWriter(String Filename, boolean append)  // 参数append 默认为false
    

    FileWriter对文件的写入操作

    		void write(String str);  
    		void write(String str, int index, int len);
    		void write(int ch);  // 注意,这是写一个字符, 如:write(97),则写入的为'a',如果想写数字,推荐使用第一个,如write("97")
    		void write(char[] chs); 
    		void write(char[] chs, int index, int len);
    

    Demo:

    FileWriter fw = new FileWriter("d:\\a.txt");
     fw.write("IO流Demo");
    fw.write("换\r\n行");	
    fw.flush();
    fw.close();
    

    低效I:

    FileReader:
    FileReader(String filename)
    

    读取操作:

    int read()  // 一次读取一个字符 以ASCII存储 想要看到字符 做类型转换 (char)read()
    // 当返回值为-1时,说明没有数据了
    int read(char[] cbuf)  // 一次读取一个字符数组,返回的是实际读取到的字符的个数
    

    Demo1:

        //一次读取一个字符
        FileReader fr = new FileReader("d:\\a.txt");
        int ch;
        while((ch=fr.read())!=-1)
        {
            System.out.print((char)ch);
    			
        }
        fr.close();
    

    Demo2:

    //一次读取一个1024个字符
    			FileReader fr - new FileReader("d:\\a.txt");
    			char[] chs = new char[1024];
    			int len;
    			while((len = read(chs))!= -1 )
    			{
    				System.out.print(new String(chs, 0, len));
    			}
    			fr.close();
    
    

    高效O:

    Demo:

    			BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\bw.txt"));
    			bw.write("高效O Demo");
    			bw.write("换\r\n行");
    			bw.flush();
    			bw.close();
    		特殊功能:
    			void newLine() // 写一个换行符,具体是什么由系统决定, win(\r\n)   linux(\n)   mac(\r)
    

    高效I:

    Demo:

    			BufferedReader br = new BufferedReader(new FileReader("d:\\bw.txt"));
    			char[] chs = new char[1024];
    			int len;
    			while((len=bw.read(chs))!=-1)
    			{
    				System.out..print(new String(chs,0,len));
    			}
    			bw.close();
    		特殊功能:
    			String readLine()  // 一次读取一行数据,但是不读取换行符。
    

    ☆Demo:

    			BufferedReader br = new BufferedReader(new FileReader("d:\\bw.txt"));
    			String line;
    			while((line = br.readLine()) != null)
    			{
    				System.out.println(line);
    			}
    			
    			br.close;
    
    //具有鲁棒性的文件写入
    	public static void main(String[] args) {
    		function("a.txt");
    	}
    	
    	public static void function(String filename){
    		FileWriter fw = null;
    		try {
    			//System.out.println(1/0);;
    			fw = new FileWriter(filename);
    			fw.write("hello world");
    			fw.write("hello world");
    			//fw.write(2/0);
    			fw.write("hello world");
    			fw.write("hello world");
    		} catch (IOException e) {
    			e.printStackTrace();
    		}finally{
    			try {
    				if(fw!=null)
    					fw.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    			
    		}
    		
    	}
    

    使用字节流进行文件的复制(二进制文件的复制)

    private static void method() throws FileNotFoundException, IOException {
    	FileInputStream fis = new FileInputStream("这里是一个文件名");
    	FileOutputStream fos = new FileOutputStream("另一个问件名");
    	
    	// 一次读一个字节
    //		int by;
    //		while((by = fis.read() ) !=-1){
    //			fos.write(by);
    //		}
    	
    	// 一次读取一个字符数组
    	int len;
    	byte[] bys = new byte[1024];
    	while((len = fis.read(bys))!=1){
    		fos.write(len);
    	}
    	
    	fis.close();
    	fos.close();
    }
    
  • 相关阅读:
    hdu1151 二分图(无回路有向图)的最小路径覆盖 Air Raid
    二分图多重匹配问题
    二分图最大匹配问题及其扩展
    ZOJ3741 状压DP Eternal Reality
    POJ2699:The Maximum Number of Strong Kings(枚举+贪心+最大流)
    POJ2396:Budget(带下界的网络流)
    POJ2391:Ombrophobic Bovines(最大流+Floyd+二分)
    POJ1637:Sightseeing tour(混合图的欧拉回路)
    URAL1277 Cops and Thieves(最小割)
    Leetcode 44. Wildcard Matching
  • 原文地址:https://www.cnblogs.com/pupil2021/p/11063508.html
Copyright © 2011-2022 走看看