zoukankan      html  css  js  c++  java
  • JavaI/O(输入/输出)

    File类

    通过File类可以在程序中操作文件和目录,File能新建、删除、重命名文件和目录,但是不能访问文件内容本身。

    理解I/O流

    1. 流(stream)是从起源(source)到接收(sink)的有序数据。
    2. Java的I/O流使用了装饰器模式,将I/O流分成底层节点流和上层处理流。
    3. Java的I/O提供四个抽象基类不能创建实例
      • 八位字节流以InputStream和OutputStream为基类
      • 十六位的字符流以Reader和Writer为基类
    4. 方法
      • 输入流
        • int read()
        • int read(byte[] b)
      • 输出流
        • void write(int c)
        • void write(String s)
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class FiieTest {
    	public void readFile()throws IOException {
    		//创建字节输入流
    		FileInputStream fis = new FileInputStream("FileTest.java");
    		//创建取文件的容器
    		byte[] bbuf = new byte[1024];
    		//保存实际读取的字节数
    		int hasRead = 0;
    		//在容器中循环取字节
    		while ((hasRead = fis.read(bbuf)) > 0) {
    			//将字节数组转换成字符串
    			System.out.println(new String(bbuf, 0, hasRead));
    		}
    		//关闭文件流,放在finally块里更安全
    		fis.close();
    	}
    	
    	public void writeFile()throws IOException {
    		//java7使用try语句保证输入流自动关闭
    		try (
    			FileInputStream fis = new FileInputStream("FileTest.java");
    			FileOutputStream fos = new FileOutputStream("FileTest.txt"))
    		{
    			byte[] bbuf = new byte[32];
    			int hasRead = 0;
    			while ((hasRead = fis.read(bbuf)) > 0) {
    				fos.write(bbuf, 0, hasRead);
    				
    			}
    		}catch (IOException e) {
    			e.printStackTrace();
    		}
    		
    	}
    }
    

    处理流

    使用处理流操作更简单,执行效率更高

    	//使用PrintStream处理流包装OutputStream
    	public void printTest() throws IOException{
    		try (
    			FileOutputStream fos = new FileOutputStream("test.txt");
    			PrintStream ps = new PrintStream(fos)){
    			
    			ps.println("p普通字符串");
    			ps.println(new FileTest());
    			
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    
  • 相关阅读:
    Java并发之AQS详解
    Linux查看日志常用命令
    换了电脑如何使用hexo继续写博客
    职业保持年轻感
    如何用区块链技术解决信任问题?Fabric 架构深度解读
    一致性哈希(hash)算法
    你真的了解volatile关键字吗?
    Spring的IOC原理
    使用Hexo+Github搭建属于自己的博客(进阶)
    使用Hexo+Github搭建属于自己的博客(基础)
  • 原文地址:https://www.cnblogs.com/pycrab/p/8877182.html
Copyright © 2011-2022 走看看