文档章节

IO流

树上的窝
 树上的窝
发布于 2017/04/30 15:05
字数 414
阅读 5
收藏 0

 

 IO流的分类

1、按数据流向分:

输入流:从外界把数据读入内存(应用程序),是用来读数据的。一般输入流带有 input。

输出流:从内存把数据写出外界(硬盘等),是用来写数据的。 一般输出流带有 output。

2、按数据的格式来分:

字节流:一般用来处理声音、图片、视屏等二进制文件。一般类是以Stream结尾。

字符流:一般用来处理文本数据(如txt)。

利用BufferedReader将制定文件读入程序。

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class zijie {

	public static void main(String[] args) {
		FileInputStream read =null;
		BufferedReader buff =null;
		try {
			//创建字节流读取指定文件的对象
			 read = new FileInputStream("G:\\a\\aa.txt");

			 //利用InputStreamReader的桥梁作用转化为字符流,调用BufferedReader进行行读取
			 buff = new BufferedReader(
					new InputStreamReader(read));

			String a = null;
			while ((a = buff.readLine()) != null) {   //判断是否读取到最后一行
				System.out.println(a);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				buff.close();       //关闭流
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}

从控制台输入,写到指定文件中 (先从控制台读取字符,然后再将字符写入文件)。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class shuchu {

	public static void main(String[] args) {
		try {
			//创建输出流,指定目标文件
			FileOutputStream write = new FileOutputStream("G:\\a\\a.txt",true);
			//创建字符输入流,从控制台输入字符
			BufferedReader br = new BufferedReader(new           
                                              InputStreamReader(System.in));
			//创建bufferedWriter缓存对象,将字符写入文件中
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(write));
			String a=null;
			while((a=br.readLine())!=null){
				bw.write(a);       //向文件中写 入缓存中的字符
				bw.newLine();		//在文件中换行
				bw.flush();			//刷新缓存
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

 

© 著作权归作者所有

下一篇: 异常
树上的窝
粉丝 1
博文 15
码字总数 6762
作品 0
深圳
程序员
私信 提问

暂无文章

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
1
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
2
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
2
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部