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();
    		}
    	}
    
  • 相关阅读:
    P2569 [SCOI2010]股票交易 dp 单调队列优化
    luogu P4516 [JSOI2018]潜入行动
    7.12 NOI模拟赛 积性函数求和 数论基础变换 莫比乌斯反演
    luogu P2607 [ZJOI2008]骑士 tarjan dp
    7.11 NOI模拟赛 graph 生成函数 dp 多项式
    luogu P1973 [NOI2011]NOI 嘉年华 dp
    HTML-01文档
    修改服务器为Root直接登录
    strust2--postman遇到的ognl问题
    python-13-函数
  • 原文地址:https://www.cnblogs.com/pycrab/p/8877182.html
Copyright © 2011-2022 走看看