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[ ...
随机推荐
- Cygwin下载,安装教程
Cygwin是一个用于在Windows上模拟Linux环境的软件,由于工作上的需要,我要使用它,至于为什么用它,我在这里不做过多的解释,本文的目的,旨在于解决Cygwin安装上的问题. 原始的安装Cy ...
- JS 职责链模式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 如何区别PeekMessage&GetMessage SendMessage&PostMessage
转自http://blog.csdn.net/young0325/article/details/6430664 Peekmessage和Getmessage都是向系统的消息队列中取得消息,不过性质不 ...
- Unix/Linux获取进程的详细信息
Linux的进程的信息都记录在/proc/<pid>/下面,其实常用的ps.top命令也是从这里读取信息的.常用的信息有: cmd(命令).cmdline(完整的命令行参数).envrio ...
- oracle视图如何使用
1.视图的概述 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表.视图来源于表,所有对视图数 ...
- Ubuntu 14.10 下设置时间同步
在启动HBase机群的时候,发现了一个错误,因为机群时间不同步导致,所以要同步集群时间. Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RT ...
- 生成Apk遇到的问题
conversion to dalvik format failed with error 1 android proguard keep Parameterized class
- hdu 2097
ps:WA了两次好像....Sky数是三个进制下的各位数之和相等...而不是都等于22...我傻逼了... 代码: #include "stdio.h" int inp(int a ...
- HDU 圆桌会议 - 数学题
圆桌 题意就是每分钟可以将相邻的两个人的位置互换一下 , 问你 ,几分钟可以将所有人的位置互换成 原先的 B 在A的右边 C在A的左边 , 换成现在的 C 在A 的右边 , B 在 A 的 ...
- Python行和缩进
Python缩进和冒号 对于Python而言代码缩进是一种语法,Python没有像其他语言一样采用{}或者begin...end分隔代码块,而是采用代码缩进和冒号来区分代码之间的层次. 缩进的空白数量 ...