Java 演示如何用标准的输入输出流重定向到一个文件

最近,在学习Java,并且学习到了Java的IO(输入与输入),什么是Java IO呢?
 IO流位于java.io包中,根据操作数据不同,分为字节流和字符流;根据数据输入方面的不同又可分为输入流和输出流,无论是何种流,最终都依赖于操作系统。
一、字节流:
1、字节流,主要用于图片、音频、视频的传输,以二进制的形式进行,分为字节输入流和字节输出流;字节流操作的是字节数组;字符流操作的是字符数组。
2、字节输入与字节输出流的继承体系图

InputStream 常用方法
方法声明
功能描述
int read()
从输入流读取一个8位的字节,把它转换为0-255之间的整数,并返回这一整数
int read(byte[] b)
从输入流读取若干字节,把它们保存到参数b指定的字节数组中,返回的整数表示读取的字节数
int read(byte[] b,int off,len)
从输入流读取若干字节,把它们保存到参数b指定的字节数组中,off指定字节数组开始保存数据的起始下标,len表示读取的字节
void close()
关闭此输入流并释放与该流关联的所有系统资源

OutputStream 常用方法
方法声明
功能描述
void write(int b)
向输出流写入一个字节
void write(byte[] b)
把参数b指定的字节数组的所有字节写到输出流
void write(byte[] b,int off,len)
将指定byte数组中从偏移量off开始的len个字节写入输出流
void flush()
刷新此输出流并强制写出所有缓冲的输出字节
void close()
关闭此输出流并释放与该流关联的所有系统资源

字节流读写文件:
  FileInputStream 是操作文件的的字节输入流,专门用于读取文件中的数据。
  FileOutputStream是操作文件的的字节输出流,专门用于把数据写入文件。

其代码如下:

package Redirecting;

import java.io.*;

public class Redirecting {
    public static void main(String[] args) throws IOException {
        PrintStream console = System.out;
        BufferedInputStream in = new BufferedInputStream(new FileInputStream("/Users/mac/IdeaProjects/JF_Java_EDU/src/Redirecting/Redirecting.java"));
        PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream("outtest.txt")));

        System.setIn(in);
        System.setOut(out);
        System.setErr(out);

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s;
        while ((s = br.readLine()) != null)
            System.out.println(s);
                out.println(s);
        out.close();
        System.setOut(console);
    }
}

FileReader 和FileWriter 用于读写文件;BufferedReader 和BufferdeWriter是具有缓冲功能的流,可以提高读写效率。

BufferedReader中有一重要的方法readLind(),该方法用于一次读取一行文本。

转换流是一种字符流,只能实现字节流读写文本数据的时候,通过转换流来使用字符高效流的方法。而不能实现图片、音频等数据的读写。
InputStreamReader:理解上是字节流通向字符流的桥梁,使用上为:
 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
OutputStreamWriter:理解上是字符流通向字节流的桥梁,使用上还是通过字节流转成字符流:
BufferedWriter bw = new BufferedWriter (new OutputStreamWriter(System.out));

最终的输出结果,把你的代码输出到文本文档,如下:

原文地址:http://blog.51cto.com/1238306/2068588

时间: 2024-08-27 19:43:21

Java 演示如何用标准的输入输出流重定向到一个文件的相关文章

【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作

一.基本目标 使用Java完成如下的操作: 把一个文件夹内的所有文件拷贝的另一的文件夹,例如,在F盘中有a与b两个文件夹: f:/a里面有一堆文件,运行Java程序之后就会全部复制到f:/b,并且完成重命名,在所有文件之前加rename_的前缀,如果里面有文件夹,则文件夹不重命名,里面的文件进行重命名,同样在所有文件之前加rename_的前缀: 二.制作过程 1.首先主函数非常简单,就是调用了上面FileTest类中的copyFolder函数 public class FileCopy { pu

linux将标准输出和标准错误输出都重定向到一个文件?

需求描述: 今天在写crontab,里面有标准输出和错误输出,之前使用的是 > /dev/null 2>&1 那这个意思也就等同于将标准输出和错误输出都输出到/dev/null中,在这里记录下 操作过程: 1.原crontab定时任务,分别对标准输出和标准错误输出进行定向 [[email protected] mail]# crontab -l */1 * * * * /usr/sbin/ntpdate 192.168.53.22 >/dev/null 2>&1 2

java开发知识IO知识之输入输出流以及文件

java开发知识IO知识之输入输出流以及文件 一丶流概述 流十一组有序的数据序列.根据操作的类型,可以分为输入流跟输出流两种. IO(input/output)输入/输出流提供了一条通道程序.可以使用这条通道把源的字节序列送到目的地 简单来说. 就是操作二进制. 二进制提供了读写功能. 写就是输出. 读就是输入. 输入输出流图示: 输入流讲解 InputStream类. 1. 输入流以及类层次结构 输入流就是从"文件" 读取到内存. 这个文件是抽象的.意思就是不管什么内容从硬盘也好.任

Java高级特性 第4节 输入输出流

一.使用I/O操作文件 关键步骤: 使用File类操作文件或目录属性 使用FileInputStream类读文本文件 使用FileOutputStram类写文本文件 使用BufferedReader类和FileReader类读文本文件 使用BufferedWriter类和FileWriter类读文本文件 使用DataInputStream类读二进制文件 使用DataOutputStream类写二进制文件 重定向标准I/O   1.使用File类操作文件或目录属性   java.io包提供了一些接

JAVA输入/输出流程序例题(文件和目录、字节流、字符流)

一.文件和目录 1.显示文件的基本信息. 2.显示目录的基本信息. 3.在指定目录下创建单个文件. 4.指定目录下创建多个临时文件. 二.字节流 1.生成ZIP压缩文件 2.解压缩zip文件 3.生成Excel文件 4.读取excel文件 5.生成PDF文件 6.读取PDF文件中的内容 7.利用poi读取Word文件中的内容. 三.字符流 1.追加文件内容 2.读取jar包内容 3文件的加密/解密操作 JAVA加包+++右键项目+BuildPath+Add External Achievees.

Java I/O (1) - 输入/输出流

先说概念: Java API中,可以从其中读入一个字节序列的对象叫做输入流,可以向其中写入一个字节序列的对象叫做输出流.这些字节序列的来源地 和 目的地 可以文件.网络连接甚至内存块.抽象类InputStrean和OutputStream构成了I/O类层次结构的基础. 可以把输入输出流理解成一个媒介,像是管道,我们要存储或传输的数据就承载在这个媒介上,但是仅仅有了输入.输出流,还需要对这些流进行读写啊,也就是把数据放到媒介上.或者 从这些媒介上拿下来.java提供了抽象类Reader 和 Wri

一般的输入输出流保存数据进文件

1.视图 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 an

Java标准流输入输出流In(Out)putStream,ReaderWriter等总结(1)

一,标准输出流System.out System.out向标准输出设备输出数据,方法有很多: print()和println()的主要区别是后者输出完了主动转行前者不转行,printf()主要是格式化输出 一,标准输入流System.in System.in读取标准输入设备数据(从标准输入获取数据,一般是键盘)int read() //返回ASCII码.若,返回值=-1,说明没有读取到任何字节读取工作结束. int read(byte[] b)//读入多个字节到缓冲区b中返回值是读入的字节数 p

通过字节输入输出流,对标识文件读写,并按规定输出

/** * 创建用户类额 * @author square 凉 * */public class User { private String userName; private String password; private String Name; public String getUserName() {  return userName; } public void setUserName(String userName) {  this.userName = userName; } p