`

输入/输出流

    博客分类:
  • Java
阅读更多
1.输入流代表从外设流入到计算机内存的数据序列,输出流代表计算机内存向外设的数据序列。
根据数据类型不同,流分为两类:一种是字节流(Byte流),一次读写8位二进制数,InputStream和OutputStream设计成字节流;一种是字符流(Character流),一次读写16位二进制数,Reader和Writer为字符流设计。
2.FileInputStream和FileOutputStream是InputStream和OutputStream的直接子类,负责对本地磁盘文件的顺序读写工作;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;


public class testFileInOutputStream {
	public static void main(String[] args) throws IOException {
		File file=new File("E:/test","file.txt");//文件对象
		FileInputStream fis=new FileInputStream(file);//文件输入流
		byte[]b=new byte[(int)file.length()];//定义一个字节数组
		fis.read(b);//文件输入流将内容写入到字节数组中
		File copyFile=file.createTempFile("CopyFile", ".txt",new File("E:/"));//在E:/test的路径下创建文件名CopyFile,扩展名.txt的临时文件
		FileOutputStream fos=new FileOutputStream(copyFile);//创建文件输出流
		fos.write(b);//将数组b中的内容写入到流中
		fos.close();//关闭
		fis.close();//关闭
	}
}

结果在E:/test下产生了一个新的文件,内容跟原先的内容一样。但是后缀名改为doc后里面的内容是乱码,应该是编码的问题

3.InputStreamReader和OutputStreamWriter是由字节流转换成字符流的通道。使用方法跟FileInputStream类似。以下是一个关于流的简单输入和输出
public class testStream {
	public static void main(String[] args) {
		int c;
		InputStreamReader in=new InputStreamReader(System.in);//创建输入流
		OutputStreamWriter out=new OutputStreamWriter(System.out);//创建输出流
		System.out.println("输入一行字符,回车结束!");
		try {
			while((c=in.read())!='\n')//c=in.read(),c就是从输入流中获得的值
				out.write(c);//将c写到输出流中
			out.close();//关闭输出流,若不关闭屏幕上什么也没有
			in.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("输入流有误!");
		}
	}

}

4.FileReader和FileWriter的使用
System.out.println("请输入留言!");
		int n;
		InputStreamReader in=new InputStreamReader(System.in);
		File f=new File("E:/test","a.txt");
		FileReader fr=new FileReader(f);
		FileWriter fw=new FileWriter(f,true);//此处设置为true,向文件尾部追加内容,如果不加则是覆盖原先的内容
		while((n=in.read())!='\n'){
			fw.write(n);//将内容写入到文件输出流中
		}
		in.close();
		fw.close();
                char[]ch=new char[(int)f.length()];//查看文件中内容
		fr.read(ch);//将文件内容写入到ch中
		for(int i=0;i<ch.length;i++){
			System.out.println(ch[i]);
		}
		fr.close();

5.BufferedReader和BufferedWriter缓存字符流,可以提高字符流的处理效率
	//缓存System.in字符输入流
		BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
		//缓存FileWriter字符输出流
		BufferedWriter bfw=new BufferedWriter(new FileWriter(new File("E:/test","a.txt")));
		String input=null;
		//每读一行进行一次写入动作
		System.out.println("输入字符串,End结束");
		while(!(input=bfr.readLine()).equals("end")){
			bfw.write(input);//将读到的内容写到输出流中
			bfw.newLine();
		}
		bfr.close();
		bfw.close();

6.将一个文件中的内容一行一行读取的例子:
//按行顺序第读取一个可读文件的内容
		String s;//声明一个变量
		FileInputStream is;//声明FileInputStream变量
		InputStreamReader ir;//声明InputStreamReader变量
		BufferedReader in;//声明BufferedReader变量
		try{
			is=new FileInputStream("E:\\test\\a.txt");//创建FileInputStream对象
			ir=new InputStreamReader(is);//创建InputStreamReader对象
			in=new BufferedReader(ir);//创建BufferedReader对象
			while((s=in.readLine())!=null){//判断下一行不为空
				System.out.println("Read:"+s);
			}
		}catch(FileNotFoundException e){//文件找不到异常
				System.out.println("File not found!");
				System.exit(-2);
			}catch(IOException e){
				System.out.println("error:"+e);
				System.exit(-3);
			}
1
1
分享到:
评论

相关推荐

    JAVA范例 七)输入/输出流---字符流

    在Java编程语言中,输入/输出流(Input/Output Stream,简称I/O流)是处理数据传输的基础。本文将深入探讨字符流的概念,包括它的作用、类型以及如何在实际编程中应用。首先,我们理解一下标题中的“字符流”:在...

    实验9 Java输入输出流.doc

    Java输入输出流是Java编程中一个非常重要的概念,主要用于数据的读取和写入操作,包括文本文件和二进制文件。在实验9中,主要目的是理解和掌握I/O流的分类,以及如何进行文本和二进制文件的读写。 I/O流在Java中被...

    Java输入/输出流体系详解

    Java的输入输出流体系可以分为两大类:输入流和输出流。输入流用于读取数据,而输出流用于写入数据。 输入流的基类是InputStream,它提供了基本的读取操作。输出流的基类是OutputStream,它提供了基本的写入操作。 ...

    Java程序使用字符界面与系统输入/输出界面进行数据通信

    Java程序设计中,与系统输入/输出界面进行数据通信是通过输入输出流(I/O流)实现的。I/O流是Java的核心特性之一,允许程序读取数据源(如键盘、文件)并写入数据目标(如显示器、文件)。在Java 2中,这个过程尤其...

    Java学习资料-输入输出流

    Java 输入/输出流是Java程序进行数据传输的关键机制,它允许程序从源(如键盘、文件)接收数据或将数据发送到目的地(如显示器、文件)。Java中的I/O流分为四类:字节流(Byte Streams)和字符流(Character Streams...

    Linux系统教程 标准输入/输出和重定向

    Linux 系统标准输入/输出和重定向 Linux 系统中标准输入/输出和重定向是两个非常...标准输入/输出和重定向是 Linux 系统中非常重要的概念,它们可以帮助用户更好地控制输入/输出流,使得命令的输出更加灵活和方便。

    输入输出流和文件操作

    Java程序设计中的输入输出流和文件操作是编程中不可或缺的部分,它们允许程序与外部世界进行数据交换,包括读取文件内容、写入数据到文件、以及处理标准输入输出。以下是对这些概念的详细阐述: 1. **文件和流的...

    java输入输出流.ppt

    Java输入输出流(I/O流)是Java编程中不可或缺的一部分,它主要用于程序与外部资源之间的数据传输。在Java中,I/O流的概念被用来抽象各种输入源和输出目标,包括键盘、显示器、文件、网络连接等。I/O流的设计遵循...

    流类库与输入/输出 c++实验报告

    这篇C++实验报告主要涉及了C++中的流类库及其在输入输出操作中的应用。流类库是C++标准库的重要组成部分,它提供了一种统一处理输入和输出的方法,包括控制数据格式、转换数据类型以及读写文件等功能。 1. **流的...

    Java 输入与输出流操作

    Java 输入与输出流是Java编程语言中至关重要的概念,它涉及到数据在程序、文件、网络之间的传输。在Java中,I/O(Input/Output)处理是通过一系列的类和接口来实现的,这些都位于java.io包中。下面将详细阐述Java...

    《Java语言程序设计》课件及源代码_第6章 输入输出流

    本章节将深入探讨《Java语言程序设计》中关于第6章输入输出流的知识点,结合提供的源代码文件,我们可以看到以下几个关键主题: 1. **基础I/O流**:Java中的I/O流被设计为类层次结构,分为字节流(处理单个字节)和...

    流类库和输入/输出 c++ppt

    9.2 输入输出的格式控制在`ios`类中定义,通过一些枚举常量如`skipws`、`left`、`right`等,程序员可以控制数据的对齐方式、进制转换、是否显示基数等,从而实现对输出格式的精细化调整。例如,`dec`表示以十进制...

    Java输入、输出流[定义].pdf

    Java输入/输出流是Java编程语言中用于处理数据传输的核心机制。它们允许程序与外部资源,如文件、网络连接或设备进行数据交换。输入流(Input Stream)用于从源头读取数据,而输出流(Output Stream)则用于将数据...

    C程序设计教程与实验指导杨国兴输入输出流学习教案.pptx

    在C++中,插入运算符`和提取运算符`&gt;&gt;`是输入输出流的核心操作。插入运算符用于将数据写入输出流,例如`cout !"`将字符串写入控制台。`可以操作各种数据类型,包括基本类型、变量、常量和字符串。而提取运算符`&gt;&gt;`...

    第6章(输入输出流).ppt

    【Java输入输出流详解】 Java中的输入/输出流(I/O流)是处理程序与外部交互数据的关键组件。第6章主要围绕Java的I/O流展开,包括输入流、输出流以及文件读写操作。 6.1 输入/输出流 在Java中,I/O流是一个抽象...

    Java输入、输出流.pdf

    在Java编程中,输入/输出流(Input/Output Stream)是处理数据传输的核心部分,无论是从键盘读取用户输入,还是将数据写入文件或网络。Java I/O流体系结构提供了一种统一的方式来处理不同类型的数据流,包括字节流和...

    软件工程师-浅谈Java的输入输出流技术步骤说明.pdf

    在 Java 中,IO 部分的内容是很庞大的,因为它涉及的领域很广泛,包括标准输入输出、文件的操作、网络上的数据流、字符串流、对象流、zip 文件流等。 在 Java 中,流是一个很形象的概念,当程序需要读取数据的时候...

    android 字符串输入输出流

    在Android开发中,字符输入输出流(InputStream和OutputStream)是处理数据传输的关键工具,尤其是在读取和写入文件时。本文将深入探讨Android中的字符串输入输出流,以及如何使用它们来实现对文档的操作。 首先,...

    C++程序设计基础:11-输入输出流.pptx

    在C++编程中,输入/输出流(Input/Output Stream,简称I/O流)是程序与外部设备(如显示器、键盘、磁盘等)进行数据交互的重要机制。本章主要探讨了C++中的I/O流类库,以及如何利用这些类库进行数据传输。 11.1 流...

Global site tag (gtag.js) - Google Analytics