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);
        
    }    
}
posted @ 2019-03-20 14:13  Aurora_l  阅读(170)  评论(0编辑  收藏  举报