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[ ...
随机推荐
- PC客户端测试总结
1.1界面显示内容的检查l 完整性(1显示时应考虑数据显示宽度的自适应或自动换行(数据长度较长).(2所数据展现的界面(如查询等),必须使测试数据的记录数超过一页,以验证满页时其窗体是否有横向.纵向滚 ...
- Struts2 中EL表达式取值顺序
pagecontext---->request---->Valuestack-root栈顶----->root栈底----->actioncontext map----> ...
- 《day12---异常》
//91-面向对象-异常-异常的发生和简单应用. /* 异常: java运行时期发生的问题就是异常. Java中运行时的除了异常Exception含有错误Error. 异常:通常发生后可以有针对性的处 ...
- js库之art.dialog
自适应内容 artDialog的特殊UI框架能够适应内容变化,甚至连外部程序动态插入的内容它仍然能自适应,因此你不必去考虑消息内容尺寸使用它.它的消息容器甚至能够根据宽度让文本居中或居左对齐——这一切 ...
- PAT 10-0 说反话
我写了两种实现方法,其中第二种是参考Yomman园友的(http://www.cnblogs.com/yomman/p/4271949.html).我的方法(方法一)是用一个数组存放输入的字符串,另一 ...
- PAT 06-3 单词长度
此题为简化版,题设为“以'.'结尾”.“单词与语言无关”.三种情况下的输入输出为 . -> 无输出 a b. ->1 1(无空格) a b . ->1 1(无空格) 程 ...
- c#多线程(UI线程,控件显示更新) Invoke和BeginInvoke 区别
如果只是直接使用子线程访问UI控件,直接看内容三,如果想深入了解从内容一看起. 一.Control.Invoke和BeginInvoke方法的区别 先上总结: Control.Invoke 方法 (D ...
- EasyUI 验证框使用方法
使用过程中的一积累,备查. EasyUI 验证框使用方法://***************************missingMessage:未填写时显示的信息validType:验证类型见下示例 ...
- java generic type
java generic type: 类型安全.类型参数化.不需要强制转换
- MVC(模型-视图-控制器)的理解
在 MVC 中,模型对象表示数据(例如日历应用程序中的待办事项或绘图程序中的图形),视图对象知道如何显示模型对象所表示的数据,控制器对象充当模型和视图的媒介.在“HelloWorld”应用程序中,模型 ...