`
radovi
  • 浏览: 64600 次
  • 性别: Icon_minigender_1
  • 来自: 杭 州
社区版块
存档分类
最新评论

IO进阶 用InputStream和OutPutStream实现凯撒密码

阅读更多
package chap16;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Scanner;

public class CodeTester {

	/**
	 * @param args
	 */
	public static void main(String[] args)  throws Exception
	{
		  Scanner cin = new Scanner(System.in);
		  System.out.println("input the url of input file");
		  //输入inptufile的路径
		  String inputfile = cin.next();
		  System.out.println("input the url of the outfile");
		  String outputfile = cin.next();
		  
		  Code myCode = new Code(3);
		  myCode.enFile(inputfile, outputfile);
	}
}




class Code {
	public Code(int akey) {
		this.key = akey;
	}

	/*
	 * 输入输出文件交互 @param infile 输入文件路径 @param outfile 输出文件路径
	 * 
	 */

	public void enFile(String infile, String outfile) throws Exception {
		InputStream in = null;
		OutputStream out = null;

		try {
			in = new FileInputStream(infile);
			out = new FileOutputStream(outfile);

			changeCode(in, out);

		} catch (IOException ex) {
			ex.printStackTrace();
		} finally {
			if (in == null)
				in.close();
			if (out == null)
				out.close();
		}
	}

	/*
	 * 字符转换 @param FileInputStream 输入流 @param FileOutputStream 输出流
	 */
	public void changeCode(InputStream in, OutputStream out) {

		boolean done = false;

		while (!done) {
			try {
				int next = in.read();
				if(next == -1) done = true;
				else
				{
					// in.read()输出的是一些整型的值,强制转换成byte类型
					byte temp = (byte) next;
					// 进行加密
					byte c = this.jiami(temp);
					out.write(c);
				}
				

			} catch (IOException ex) {
				ex.printStackTrace();
			}

		}

	}

	/*
	 * 对字符加密 @param byte b 待加密的字符 @return code 加密后的字符
	 */
	public byte jiami(byte b) {
		byte temp = (byte) (b + this.key);
		return temp;
	}

	// 钥匙
	private int key;
}




运行结果:
input the url of input file
O:\\myproject\\J2SE项目\\Test\\src\\bejiami.txt
input the url of the outfile
O:\\myproject\\J2SE项目\\Test\\src\\afjiami.txt
分享到:
评论

相关推荐

    IO流文档InputStream / OutputStream

    IO流是Java中的一种基本的数据交换方式,通过InputStream和OutputStream可以实现数据的读取和写入,而Reader和Writer可以实现字符流的读取和写入。IO流的知识点很多,需要认真学习和掌握。 InputStream的类型: * ...

    关于InputStream和OutputStream详细讲解

    关于InputStream和OutputStream关于InputStream和OutputStream关于InputStream和OutputStream关于InputStream和OutputStream

    InputStream与OutputStream及File间互转

    通过上述方法,开发者可以在处理Java I/O操作时灵活地在`InputStream`、`OutputStream`和`File`之间进行转换,从而实现各种文件读写和数据传输的需求。理解并熟练运用这些技巧是编写高效、健壮的Java程序的关键。

    将输出流OutputStream转化为输入流InputStream的方法

    在Java中,它们是Java.io包下的基础类,提供了多种子类来处理不同类型的输出和输入操作,如`FileOutputStream`和`FileInputStream`用于文件操作,`SocketOutputStream`和`SocketInputStream`用于网络通信等。...

    java io InputStream and outputStream

    InputStream is = new FileInputStream(file1);// 打开文件 byte[] cont = new byte[(int) file1.length()]; is.read(cont);// 读取文件 for (int i = 0; i ; i++) { System.out.print((char) ...

    java.io.Reader 和 java.io.InputStream 的区别

    此外,值得注意的是,虽然`InputStream`和`OutputStream`以及`Reader`和`Writer`之间存在类似的关系,但在设计上,`InputStream`和`OutputStream`更偏向于底层数据传输,而`Reader`和`Writer`则提供了更高级的字符...

    java-0126递归&过滤器(listFiter)&InputStream&OutputStream

    InputStream 和 OutputStream InputStream 是一种输入流,用于读取数据。InputStream 可以用来读取文件、网络数据等。 OutputStream 是一种输出流,用于写入数据。OutputStream 可以用来写入文件、网络数据等。 ...

    Java基础核心+InputStream输入流+OutputStream输出流

    InputStream和OutputStream是Java.io包下的抽象类,是所有字节流的基类。InputStream代表字节输入流,而OutputStream则表示字节输出流。在Java中,文件操作通常涉及到数据的读取和写入,这两个类及其子类就提供了...

    Java编程中多种IO API复制文件的性能分析.pdf

    Java中的IO API可以分为多种不同的编程方式,例如,使用基本的InputStream和OutputStream来实现文件复制,使用缓冲IO来提高性能,使用NIO来实现高性能的IO操作等。 在实际应用中,需要根据实际情况选择合适的IO API...

    java 文件存储 Inputstream outputstream reader writer的用法

    `InputStream`、`OutputStream`、`Reader`和`Writer`是Java IO流的基础类,它们提供了读写文件的基本接口。本篇文章将深入讲解这些类的用法,并提供实际的代码示例,帮助初学者更好地理解和应用。 1. `InputStream`...

    java IO流+socket源码 实现简单文本传输

    Java IO流和Socket是Java编程语言中用于处理输入输出和网络通信的重要概念。在这个示例中,我们将深入探讨如何利用Java IO流与Socket实现简单的文本传输。对于初学者来说,理解这两个概念及其交互是非常关键的。 ...

    IO流体系继承结构图_动力节点Java学院整理

    InputStream和OutputStream是抽象类,它们提供了基本的读写操作,如read()和write()方法。原始处理器(适配器)是用来将不同类型的输入/输出资源转换为InputStream或OutputStream的类。例如,ByteArrayInputStream...

    java_io.doc

    在处理文本数据时,应优先考虑使用Reader和Writer,只有在特定场景下(如处理二进制数据或特定字节格式)才使用InputStream和OutputStream。 8. **其他类和接口**: Java I/O还包括随机访问文件的RandomAccessFile,...

    Java IO类继承关系

    JavaIO类InputStream/OutputStream继承关系图,使您对IO类一目了然

    第一行代码Java源代码第11章课程代码JavaIO编

    在Java IO编程中,我们首先会接触到`java.io`包,这个包包含了众多类和接口,如InputStream、OutputStream、Reader、Writer等,它们构成了Java IO的核心。InputStream和OutputStream是处理字节流的基类,而Reader和...

    Java_IO流详解

    在使用 InputStream 和 OutputStream 时,需要注意正确地创建文件流对象,例如,创建文件"file.txt"的字节输入流,正确的语句应该是 FileInputStream in = new FileInputStream("file.txt");。 Java 的 IO 处理机制...

    第11讲 Java提供了哪些IO方式? NIO如何实现多路复用?1

    - 基于`java.io`包,主要使用`File`、`InputStream`、`OutputStream`、`Reader`和`Writer`等类。 - 采用流模型,读写操作是同步且阻塞的,意味着线程会等待操作完成,这可能导致资源浪费和性能瓶颈。 - 网络API如...

    IO流所涉及到的Decorator设计模式

    在Java IO系统中,所有的流类都继承自InputStream或OutputStream基类,这就为实现Decorator模式提供了基础。 **Java IO流**: Java中的IO流分为字节流和字符流两类,字节流处理单个字节的数据,字符流处理Unicode...

    JAVA的IO流总结

    java的IO流总结:包含Inputstream,OutputStream,writer和reader

Global site tag (gtag.js) - Google Analytics