java基础:12.4 字符流 Reader Writer
发布日期:2022-04-04 06:36:29 浏览次数:4 分类:博客文章

本文共 2631 字,大约阅读时间需要 8 分钟。

 

字符流

上一节学会了按字节进行操作的–字符流操作方法,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
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);
}
}

转载地址:https://www.cnblogs.com/l20902/p/10610885.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java基础:6.3 封装类、Number类、格式化输出、String
下一篇:java基础:12.3 字节流 InputStream、OutputStream、文件合并拆分

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.249.68.14]2022年05月23日 20时53分58秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

java高新技术-类加载器 2019-05-09 08:49:30
java高新技术-代理 2019-05-09 08:49:30
了解和入门注解的应用 2019-05-09 08:49:29
java高新技术-泛型 2019-05-09 08:49:28
Lock读写锁技术的妙用 2019-05-09 08:49:28
java高新技术-反射 2019-05-09 08:49:27
hadoop 2.x 完全分布式搭建 2019-05-09 08:49:27
内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例... 2019-05-09 08:49:26
编译hadoop-2.5.2总结 2019-05-09 08:49:26
Hadoop 2.x 2019-05-09 08:49:25
hadoop-MapReduce分布式计算框架 2019-05-09 08:49:24
使用HttpSessionListener接口监听Session的创建和失效 2019-05-09 08:49:24
监听器 2019-05-09 08:49:24
hadoop-hdfs分布式文件系统 2019-05-09 08:49:23
JavaWEB 通过Listener理解域对象生命周期 2019-05-09 08:49:22
文件上传 2019-05-09 08:49:22
ActiveMQ发消息和收消息 2019-05-09 08:49:21
ActiveMQ跑起来 2019-05-09 08:49:21
JSTL 2019-05-09 08:49:20
Filter 2019-05-09 08:49:20