`

输入/输出流

    博客分类:
  • 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范例 七)输入/输出流---字符流

    NULL 博文链接:https://kellhan.iteye.com/blog/1129324

    JDK输入/输出流详解(非常细)

    包含了在开发中要用到的所有的IO流,很简单实用

    实验9 Java输入输出流.doc

    基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java输入输出流;进阶篇有反射、泛型、注解、网络编程、多线程、序列化、数据库、...

    Android使用输入/输出流存储文件

    使用 FileOutputStream 将新建文件存储到内部存储器和SD存储器当中,并使用 FileInputStream 读取文件内容。

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

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

    异步输入/输出aio.doc

    异步输入/输出是任何特殊输入/输出流(同步和异步输入/输出)两个基本操作模式之一

    Java输入/输出流体系详解

    主要介绍了Java输入/输出流体系详解,涉及字节流和字符流,输入输出体系,转换流,以及文件的读写等相关内容,具有一定参考价值,需要的朋友可以了解下。

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

    第6章 输入/输出流 6.1 输入/输出流 6.2 文件读写 面向字符的流——Reader和Writer类

    java输入输出流 流式输入与输出

    要串行化一个对象,必须与一定的对象输入/输出流联系起来,通过对象输出流将对象状态保存下来,再通过对象输入流将对象状态恢复。 java.io包中,提供了ObjectInputStream和ObjectOutputStream将数据流功能扩展至可...

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

    这是流类库和输入/输出的讲解,需要的下载。

    输入输出流

    输入输出流 掌握C++输入/输出流(I/O流)的基本概念; 能够在输入/输出中进行基本的格式控制; 掌握文件的I/O操作。

    C++键盘输入与屏幕输出

    键盘输入与屏幕输出 C++中通过输入/输出流来实现标准输入/输出操作。 流是与I/O设备相关联的数据通信对象 输入操作通过流cin来实现 输出操作通过流cout来实现

    libstdc++ API手册

    输入/输出流:libstdc++提供了输入/输出流的实现,包括iostream、fstream、sstream等,用于处理文件、控制台和其他类型的输入/输出。 字符串:libstdc++提供了字符串的实现,包括string、wstring、st

    Java_08 输入输出1

    第六章 输入/输出流和文件6.1 输入/输出流6.2 文件读写6.1 输入/输出流通常程序需要从外部获取/输出信息这个“外部”范围很广,包括诸如键盘、显示器、文

    JAVA_NIO.zip_jdk

    I/O流或者输入/输出流指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。新的输入/ 输出(NIO)库是在JDK 1.4中引入的。NIO弥补了原来的I/O的不足,它在标准Java代码中提供了高速的、面向块 的I/O。...

    C++程序设计(全套学习课件)——帮你打下C++的坚实基础

    第一部分 面向过程的程序设计 第1章 C++概述 第2章 数据类型、运算符和表达式 第3章 简单的输入/输出 第4章 C++的流程控制 第5章 函数 第6章 编译预处理 第7章 数组 ...第14章 输入/输出流 第15章 模板

    Java实验八-Java综合实验及输入输出流.doc

    Java综合实验及输入/输出流。 2【实验内容】 1. 编写下图界面,第一行的“你喜欢的运动”足球,篮球和网球可以多选,第二行“你的性别”只能单选,当点击第三行的按钮时初始界面的标题“用户注册界面”换为对应按钮...

    输入流和输出流

    输入流和输出流 流是程序和外界进行数据交换的通道 分为输入流(InputStream)和输出流(OutputStream)。程序通过输入流从数据源读取数据,通过输出流向目的地写数据。

    Java的输入与输出.ppt )

    流是在输入输出之间流动的数据缓冲区,传送是串行的。 流一般分为输入流(Input Stream)和输出流(Output Stream)两类。流和物理文件是有区别的,流是一个动态的概念。比如一个文件,当向其中写数据时,它就是一个...

    Java语言与面向对象程序设计第16讲(异常处理,多线程和流式输入输出与文件处理)

    java语言与面向对象设计PPT,讲解的很是详细,很适合初级学员仔细拜读,里面还有很多随堂练习题

Global site tag (gtag.js) - Google Analytics