`

Java的标准I/O剖析

 
阅读更多

      System.out是一个PrintStream,而PrintStream是一个OutputStream。PrintWriter有一个可以接受OutputStream做为参数的构造器,所以可以将System.out转换成PrintWriter:

               PrintWriter writer=new PrintWriter(System.out,true);
		writer.println("nihao"+"    :wo 是否");

 要使用有两个参数的PrintWriter的构造器,并将第二个参数设置为true,以便开启自动清空功能;否则,你可能得不到结果。

 

重定向标准I/O:将from.txt中的内容转存到to.txt文件中。

 

  注意:setIn(InputStream)

            setOut(PrintStream)

            setErr(PrintStream)

      可以对标准输入,标准输出,标准错误进行I/O重定向。

package com.wjy.multithread;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;

public class ReDirect {
	public static void main(String args[]) {
		PrintStream console=System.out;
		try {
			PrintStream out=new PrintStream(new BufferedOutputStream(new FileOutputStream(new File("./file/to.txt"))));
			BufferedInputStream in=new BufferedInputStream(new FileInputStream(new File("./file/from.txt")));
			System.setIn(in);
			System.setOut(out);
			String s;
			BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
			while((s=reader.readLine())!=null){
				System.out.println(s);
			}
			out.close();
			System.setOut(console);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

 

分享到:
评论

相关推荐

    深入分析 Java I/O 的工作机制(转载)

    以下是对Java I/O机制的详细分析: 1. **I/O 流的概念** Java中的I/O操作基于流的概念,流是数据的有序传输通道。Java将所有的I/O操作抽象为流对象,分为字节流和字符流两大类。字节流处理单个字节的数据,如...

    Java I/O 过滤流-带格式的读写操作

    在Java编程语言中,输入/输出(I/O)是处理数据传输的核心部分。过滤流(Filter Stream)是Java I/O框架中的一个重要概念,它提供了一种优雅的方式来进行数据的读写操作,同时允许我们添加额外的功能,如字符编码...

    java i/o 实例 编程 学习 教程 复习

    ### Java I/O 实例编程学习教程复习 #### 一、Java I/O 概述 Java I/O(输入/输出)是 Java 编程语言中处理数据流的核心技术之一。通过 I/O,我们可以读取文件、网络数据等外部资源,并将程序产生的数据写入到文件...

    Java I/O层次结构详解

    Java I/O层次结构详解 Java I/O系统是Java平台中不可或缺的一部分,它为开发者提供了处理输入和输出的强大工具。在Java中,I/O操作主要基于流(Stream)的概念,流可以被视为数据的有序序列,既可以代表从源读取...

    异步I/O处理

    此外,许多高级编程框架,如Node.js的Event Loop,Python的asyncio,Java的NIO,都提供了异步I/O的支持。 异步I/O处理的关键在于非阻塞和事件驱动。非阻塞I/O意味着即使没有数据可读,读取操作也不会挂起;事件驱动...

    java常用技术 I/O 反射 XML等

    Java是一种广泛使用的编程语言,其I/O(输入/输出)、反射、XML处理和JVM(Java虚拟机)等技术在日常开发中扮演着重要角色。本文将深入探讨这些技术及其应用。 首先,让我们来了解Java的反射机制。反射是Java提供的...

    Java使用I/O流读取文件内容的方法详解

    Java使用I/O流读取文件内容的方法详解 Java使用I/O流读取文件内容的方法是Java编程中常用的文件读取方式。该方法可以将文件内容读取到程序中,并对其进行处理和分析。在Java中,I/O流是指数据流向某个对象的数据...

    Java实现C/S架构的聊天系统

    NIO(非阻塞I/O)是Java提供的一种高效I/O模型,与传统的阻塞I/O不同,它允许一个线程处理多个连接,提高了系统的并发性。在聊天系统中,NIO用于优化服务器端对多个客户端连接的处理,避免了因单个连接阻塞而导致的...

    jdk6.0从入门到精通-----chapter5网络编程 新I/O(含源码下载)

    在JDK 6.0之前,Java主要使用传统的I/O(InputStream和OutputStream)模型,这种模型基于阻塞I/O,即当一个线程等待数据读取或写入时,会被阻塞,无法执行其他任务,这在处理大量并发连接时效率较低。 新I/O(NIO)...

    分布式Java中的TCP/IP+NIO

    在分布式Java应用中,TCP/IP协议和NIO(非阻塞I/O)是构建高性能、高可用性系统的关键技术。TCP/IP是一种传输层协议,确保数据在网络中的可靠传输,而NIO是Java提供的一个I/O模型,允许程序进行非阻塞的数据读写,...

    Java毕业设计外文翻译

    Java I/O系统是Java标准类库中一个极为重要的组成部分,它为开发者提供了丰富的工具集用于处理输入输出操作。这些操作涵盖了从简单的文件读写到复杂的网络通信等多个层面。对于Java程序员而言,理解和掌握Java I/O...

    深入分析 Java IO 的工作机制1

    本篇文章将深入探讨Java I/O的工作原理,包括基本架构、磁盘I/O、网络I/O(特别是Java Socket的工作方式)、NIO(非阻塞I/O)以及优化技巧。 首先,Java的I/O类库主要分布在`java.io`包下,这些类大致分为四类:...

    Java NIO 英文文字版

    它之所以被看作是Java标准版1.4版本中最关键的特性之一,是因为它弥补了以往Java I/O操作的不足,尤其是对于开发高性能、大规模的应用程序来说,NIO提供了一系列的性能改进和可扩展性增强。这些增强包括在缓冲区管理...

    利用缓冲区提高Java应用程序的IO性能

    本文将深入探讨如何通过使用I/O缓冲区来提升Java程序的I/O性能,并通过一个生物信息学领域的具体案例——基因序列搜索应用来进行说明。实验结果表明,通过合理地运用I/O缓冲技术,可以在某些情况下使Java程序的I/O...

    JAVA JDK学习笔记i\o部分

    ### JAVA JDK 学习笔记 i/o 部分 #### 输入/输出 (I/O) 概述 在程序设计中,输入/输出(Input/Output,简称I/O)是指计算机程序与外部设备(如硬盘、视频设备、网络主机等)之间进行数据交换的过程。由于涉及的...

    Java网络编程/Java网络编程实例

    4. **NIO(非阻塞I/O)**:Java的NIO库提供了选择器和通道的概念,使得程序可以同时处理多个连接,提高并发性能。Selector用于监听多个Channel,而Channel则连接到网络套接字或其他I/O源。 5. **HTTPClient**:Java...

    18302010012_王栋辉_Java、JavaScript和C++对异步IO的实现方法及其效率1

    为了深入分析这三种语言的异步I/O效率,文中设计了四个具体的案例,包括读取大文件、网络数据传输等,通过对比运行时间和资源消耗,可以得出各种语言在不同场景下的性能表现。实验可能包括使用openMP对C语言代码进行...

    Scalable IO in Java -Doug Lea.rar

    《可扩展的Java I/O - Doug Lea》是Java领域中关于高效I/O处理的一份重要资料,由知名计算机科学家Doug Lea撰写。Doug Lea以其在并发编程领域的研究而闻名,他的工作对Java内存模型(JMM)和并发工具包(java.util....

Global site tag (gtag.js) - Google Analytics