zoukankan      html  css  js  c++  java
  • java基础:12.4 字符流 Reader Writer

    字符流

    上一节学会了按字节进行操作的–字符流操作方法,InputStreamOutputStream

    本节学习专门用于字符的形式读取和写入数据的方法
    Reader 字符输入流
    Writer 字符输出流

    package stream;
    
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class Test_Reader_Writer {
    	
    		//读取文件
    	public static void readfile(File f) {
    		try (FileReader fr = new FileReader(f))
    		{
    			char[] all = new char[(int)f.length()];
    			fr.read(all);
    			for(char b:all)
    				System.out.print(b);
    		}
    		catch(IOException e) {
    			e.printStackTrace();
    		}
    	
    	}
    	
    	//写文件
    	public static void writefile(File f) {
    		try(FileWriter fr = new FileWriter(f)){
    			String a = "today.";
    			char []s2c = a.toCharArray();
    			fr.write(s2c);
    		}
    		catch(IOException e) {
    			e.printStackTrace();
    		}
    	}		
    	
    	//加密文件
    	public static void encodeFile(File encodingFile, File encodedFile) {	
    		if(encodingFile.length()==0)
    			return;
    		char[] encoding = new char[(int)encodingFile.length()];
    		char[] encoded = new char[(int)encodingFile.length()];
    		
    		try{ 
    			FileReader fr = new FileReader(encodingFile);
    			fr.read(encoding);
    			fr.close();
    		}
    		catch(IOException e) {
    			e.printStackTrace();
    		}
    		
    		//processing
    		System.out.print("未加密的内容:");
    		for(char b:encoding)
    			System.out.print(b);
    		System.out.println();
    		
    		for(int i=0; i<encodingFile.length();i++) {
    			short ASCII = (short)encoding[i];
    			
    			if( '0'<= encoding[i] &&  encoding[i] <= '9') {
    				if(encoded[i] == '0') encoded[i] = '9';
    				else encoded[i] = (char)(ASCII+1);
    			}
    			
    			else 
    				if(('a'<= encoding[i] && encoding[i] <= 'z') || 
    					('A'<= encoding[i] && encoding[i] <= 'Z') )
    
    					if(encoded[i] =='a')  encoded[i] =  (char)(ASCII+25);
    					else  
    						if(encoded[i] =='A') encoded[i] = 'Z';
    						else encoded[i]= (char)(ASCII-1);				
    				else encoded[i]= encoding[i];			
    	
    			}
    		//output
    		try {
    		FileWriter fw = new FileWriter(encodedFile);
    		fw.write(encoded);
    		fw.close();
    		}
    		catch(IOException e) {
    			e.printStackTrace();
    		}
    		System.out.print("解密后的内容:");
            System.out.println(new String(encoded));			
    	}
    }
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Arrays;
      
    public class Main {
      
        public static void main(String[] args) {
           // int eachSize = 100 * 1024;    // 100k
           // File srcFile = new File("f:/testfile/0321.pptx");
           // OperateFile.splitFile(srcFile, eachSize);
          //  OperateFile.mergeFile(8,eachSize);
            
            File f = new File("f:/testfile/file.txt");
            Test_Reader_Writer.readfile(f);
            Test_Reader_Writer.writefile(f);
            
            File file_textConding = new File("f:/testfile/coding.txt");
            File file_textConding_out = new File("f:/testfile/coded.txt");
            Test_Reader_Writer.encodeFile(file_textConding, file_textConding_out);
            
        }    
    }
    
  • 相关阅读:
    js rsa sign使用笔记(加密,解密,签名,验签)
    金额的计算
    常用js方法集合
    sourceTree 的使用
    node-- express()模块
    详细讲解vue.js里的父子组件通信(props和$emit)
    Vue -- vue-cli webpack打包开启Gzip 报错
    es6函数的rest参数和拓展运算符(...)的解析
    js中判断对象数据类型的方法
    vue学习之vue基本功能初探
  • 原文地址:https://www.cnblogs.com/l20902/p/10610885.html
Copyright © 2011-2022 走看看