Java——IO(输入输出流)
*
* 源: InputStream reader* 目的: OutPutStream Writer
* 源:是纯文本: Reader
* 否: InputStream
* 内存:数组。。
//读取文件
public static void reader() throws FileNotFoundException, IOException
{
/*
* 读取字符数据的流对象
*
* 在创建读取流对象时,必须要明确被读取的文件,一定要确定 该文件是存在的。
*
* 用以个读取流关联一个已存在的文件。
*/
FileReader fr = new FileReader("");
char[] chs = new char[1024];
int len = 0;
while((len=fr.read(chs)) != -1)
{
System.out.println(new String(chs, 0, len));
}
}
//写入文件 的流
public static void writer() throws IOException
{
//创建一个可以往文件中写入字符数据的字符流对象。
/*
* 既然是往一个文件中写入数据,那么在创建对象时,就必须要明确该文件(用于存储数据的目的地)
*
* 如果文件不存在,则会自动创建,
* 如果文件存在,则会被覆盖。
*
* 如果构造函数中加入true (可以实现对文件进行续写)
*/
FileWriter fw = new FileWriter("test.txt", true);
/*
* 调用Writer对象中write(String)方法,写入数据。
*
* 其实数据写入到了临时存储缓冲区中 。(就是写到流里边去了)
*/
fw.write("yangchao");
/*
* 进行刷新, 将数据直接写入到目的地中。
*/
fw.flush();
/*
* 关闭流,关闭资源。在关闭之前 先会调用flush进行刷新。
*/
fw.close();
}
/*
* 练习:
* 需求: 将 c盘的一个文件 复制到d盘
*
* 思路:
*
1.需要读取文件。
*
2,将独到的源文件写入到目的地
*
3.使用字符流
*/
public class TestIO2
{
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
//1.读取一个已有的文本文件,使用字符流读取。
FileReader fr = new FileReader("");
//2.创建一个目的,用于存储读到的数据。
FileWriter fw = new FileWriter("");
//3.频繁的 读 写 操作
int ch = 0;
while((ch=fr.read()) != -1)
{
fw.write(ch);
}
//4.关闭资源。
fw.close();
fr.close();
}
}
//使用缓冲区写入
public static void bufferedWriter() throws IOException
{
FileWriter fw = new FileWriter("");
//为了提高效率。使用了字符流的缓冲区。
//创建一个字符写入流的缓冲区对象。 并和指定要背缓冲的流对象相关联
BufferedWriter buf = new BufferedWriter(fw);
//使用缓冲区的写入方法将数据先写到目的地中。
buf.write("sldkfjlsd");
//使用缓冲区刷新的方法将数据刷新到目的地中
buf.flush();
//关闭缓冲区
buf.close();
}
//使用缓冲区读取
public static void bufferedReader() throws FileNotFoundException,
IOException
{
//使用BufferReader读取数据
FileReader fr = new FileReader("");
BufferedReader buf = new BufferedReader(fr);
String line = null;
while((line=buf.readLine()) != null)
{
System.out.println(line);
}
}
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
FileReader fr = new FileReader("");
BufferedReader bufr = new BufferedReader(fr);
FileWriter fw = new FileWriter("");
BufferedWriter bufw = new BufferedWriter(fw);
String line = null;
while((line=bufr.readLine()) != null)
{
bufw.write(line);
}
/*int ch = 0;
while((ch=bufr.read()) != 1)
{
bufw.write(ch);
}*/
bufw.close();
bufr.close();
}
//使用字节流读取文件
public static void byteStreamInput() throws FileNotFoundException,
IOException
{
//1.创建一个读取文件对象,和指定文件关联
FileInputStream fis = new FileInputStream("");
//2.一次读一个字节
int ch = 0;
while((ch=fis.read()) != -1)
{
System.out.println((char)ch);
}
//3.关闭资源。
fis.close();
}
//使用字节流写数据
public static void byteStreamWriter() throws FileNotFoundException,
IOException
{
//1,创建字节流输出对象,用于操作文件。
FileOutputStream fos = new FileOutputStream("");
//2.写数据,直接写入到目的地中
fos.write("lsdkfsd".getBytes());
//3.关闭资源
fos.close();
}
InputStream is = new FileInputStream("config.properties");
byte[] buf = new byte[1024];
int len = 0;
while(-1 != (len=is.read(buf)))
{
String str = new String(buf, 0, len);
System.out.println(str);
}
is.close();
=============================================================
//复制一个文件 到目的地
public static void copy() throws FileNotFoundException, IOException
{
FileInputStream fis = new FileInputStream("");
FileOutputStream fos = new FileOutputStream("");
byte[] buf = new byte[1024];
int len=0;
while((len=fis.read(buf)) != -1)
{
fos.write(buf, 0, len);
}
fos.close();
fis.close();
}
/*
* 读取一个键盘录入数据, 并打印在控制台上。
*
* 键盘本身就是一个标准的输入设备。
* 对于java而言,对于这种输入设备都有对应的对象。
*/
public class TestIO6
{
public static void main(String[] args) throws IOException
{
//
readKy();transStream();
}
//第二种方式
//使用字节流向字符流的转换模式 将输入的字符装换成对应的 大写字母
public static void transStream() throws IOException
{
InputStream in = System.in;
//将字节流转换成字符流的桥梁
InputStreamReader isr = new InputStreamReader(in);
//字符流
BufferedReader bufr = new BufferedReader(isr);
String line = null;
while((line=bufr.readLine()) != null)
{
if("over".equals(line))break;
System.out.println(line.toUpperCase());
}
}
//第一种方式
public static void readKy() throws IOException
{
InputStream in = System.in;
int ch = in.read();
System.out.println(ch);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
Java——IO(输入输出流)的更多相关文章
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- Java IO 输入输出流 详解 (一)***
首先看个图: 这是Javaio 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如console类,SteamTokenzier,Externalizable接口,Seri ...
- java IO输入输出流中的各种字节流,字符流类
字节流字节流主要是操作byte类型数据,也byte数组为准,主要操作类就是·字节输出流:OutputStream·字节输入流:InputStream字符流在程序中一个字符等于2个字节,那么java提供 ...
- java io 输入输出流
数据流分类: 流序列中的数据既可以是未经加工的原始二进制数据, 也可以是经一定编码处理后符合某种格式规定的特定数据. 因此Java中的流分为两种: 1) 字节流:数据流中最小的数据单元是字节 2) 字 ...
- Java - io输入输出流 --转换流
转换流 转换输出流 OutputStreamWriter: 说明: /* * OutputStreamWriter 这个类的作用 * 就是指定输出流的编码格式 * 这个类的构造方法 需要传递 一个输 ...
- Java IO输入输出流 字符数组流 ByteArrayOutputStream/ByteArrayInputStream
private static void StringWriterAndReader() throws Exception { //字符串流(字符串的内存流) //字符串输入流 StringWriter ...
- Java IO输入输出流File 字节流
public static void main(String[] args) throws IOException { //创建源 File f =new File("file/stream ...
- java IO输入输出流实现文本复制
- Java IO输入输出流 FileWriter 字符流
字节缓冲流 //为什么要使用包装流,使用包装流是为了提高读写操作的性能. public class Packing_flowDemo { public static void main(String[ ...
随机推荐
- SharePoint 2013 开发——APP开发的考虑和建议
博客地址:http://blog.csdn.net/FoxDave 需要考虑的方面: 1. 记得CSOM授予网站集及以下的权限,而场解决方案需要整个场的访问权限. 2. 由于应用程序是彼此完全独立 ...
- poj2777 线段树
//Accepted 4768 KB 391 ms //线段树,延时标记的应用 //对于每一段,用一个int表示被着色的情况,change标记该段的颜色是否发生整体的改变,即这一段 //用没用被全部涂 ...
- js 微信分享
一. //js接口 var shareme; var urls = window.location.href; if(isWeiXin()){ var weifileref=document.cr ...
- BZOJ 1271 秦腾与教学评估
二分. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...
- 自定义Session类实现
public class CustomizeSession { private HttpSessionState _sesssion = HttpContext.Current.Session; pu ...
- HDU 5800 (DP)
Problem To My Girlfriend (HDU 5800) 题目大意 给定一个由n个元素组成的序列,和s (n<=1000,s<=1000) 求 : f (i,j,k,l, ...
- 解决DatePicker中Appbar icon缺失
最近写了个小程序,用到了Microsoft.Phone.Controls.Toolkit里的DatePicker控件,引入以后发现AppBar里两个button的图标不显示.如下图: 们是“完成”和“ ...
- struts2 中的 result 返回类型是 json 的配置问题
struts2 中的 result 返回类型是 json 的配置问题 1.引入包(本文中的包全部引自struts-2.1.8.1\lib): struts2-json-plugin-2.1.8.1.j ...
- dedecms头部标签(标题,关键词,描述标签)(借用)
先说说dedecms头部标题,关键词,描述标签的作用我相信网络上也有很多这样的信息,那为什么我还要写这个?因为这个对我们初学者来说还是比较重要的,因为做SEO就要用到这些标签.首先我写下首页头部标签我 ...
- Debian 入门安装与配置2
Debian 入门安装与配置2 1. C/C++开发必装软件 atp-get install gcc 这个不用说,用来编译C程序 apt-get install g++ 用来编译C++程序 ap ...