• Java IO流(字节流、字符流、管道) -- 实现写日记功能


    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.time.LocalDate;
    import org.junit.Test;
    
    public class WriteDiary {
    	
    	/**
    	 * 字节流 复制文件内容
    	 */
    	@Test
    	public void test1() {
    		FileInputStream fi = null;
    		FileOutputStream fo = null;
    		try {
                fi = new FileInputStream("G:\2222\1.txt");
                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();
            } finally {
    			try {
    				fi.close();
    				fo.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    	
    	/**
    	 * 字符流 复制文件内容
    	 */
    	@Test
    	public void test2() {
    		FileReader fr = null;
    		FileWriter fw = null;
    		try {
    	        fr = new FileReader("G:\2222\2.txt");
    	        fw = new FileWriter("G:\2222\3.txt");
    	        int a;
    	        while ((a=fr.read())!=-1){
    	        	fw.write(a);
    	        }
    	    } catch (IOException e) {
    	        e.printStackTrace();
    	    } finally {
    			try {
    				fr.close();
    				fw.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}  
    	}
    	
    	/**
    	 * 字符流 写日记
    	 * @throws IOException 
    	 */
    	@Test
    	public void test3() throws IOException {
    		//创建日期
    		LocalDate now = LocalDate.now();
    		StringBuffer content = new StringBuffer("");
    		
    		File dir = new File("G:\2222\diary.txt");
    		if(dir.exists()) {
    			//读取日记内容
    		    InputStreamReader diary = new InputStreamReader(new FileInputStream("G:\2222\diary.txt"));
    		    BufferedReader buffer = new BufferedReader(diary);
    		    
    		    //有内容就读取
    		    String line="";
    	    	while((line = buffer.readLine()) != null) {
    	    		content.append(line);
    	    	}
    		    
    		    //關閉IO流
    		    buffer.close();
    		    diary.close();
    		}
    	    
    	    //创建管道
    		InputStreamReader reader = new InputStreamReader(System.in);
    		OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("G:\2222\diary.txt"));
    	    BufferedReader in = new BufferedReader(reader);
    	  	    
    	    boolean flag = true;
    	    do {
    	    	System.out.println("今天日期:" + now);
    		    content.append("日期:" + now);
    		    System.out.println("输入日记内容: ");
    		    content.append(" 日记内容:" + in.readLine());
    		    System.out.println("输入作者: ");
    		    content.append(" 作者:" + in.readLine() + "
    ");
    		    System.out.println("是否繼續寫日記?(Y/N)");
    		    //跳出循環
    		    String choose = in.readLine();
    		    if(choose.equals("N") || choose.equals("n")) {
    		    	flag = false;
    		    	writer.write(content.toString());
    		    }
    		} while (flag);
    	    
    	    //关闭IO流
    	    reader.close();
    	    writer.close();
    	    in.close();
    	}
    
    }
    

      

  • 相关阅读:
    Golang学习
    Golang学习
    基础知识
    Golang学习
    基础知识
    hyper-v server 2016安装,客户端远程管理
    inotifywait命令
    CENTOS 7发送邮件测试
    NFS学习
    awk命令
  • 原文地址:https://www.cnblogs.com/mxh-java/p/11523932.html
Copyright © 2020-2023  润新知