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[ ...
随机推荐
- Tomcat的安装(一)
一.Tomcat文件下载类型 1.tar.gz 文件是linux的安装包 2.exe文件是Windows系统的安装包 3.zip文件是Windows系统下压缩版(解压缩即可,免安装) 二.下面使用zi ...
- JavaScript之document对象使用
1.document 对象常用的有三种: A.document.getElementById:通过html元素的Id,来获取html对象.适用于单个的html元素. B.document.getEle ...
- Ajax返回类型JSON,XML
Ajax的三种返回类型 **一.TEXT *二.JSON 数据显示页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transiti ...
- iOS 版本号Version和Build的区别
一个version,一个build,都是设置版本的地方,有什么区别呢? 在ios中(Android等工程中也一样),有两种version,一种是 CFBundleVersion ("Bund ...
- 详解定位—>"position"
position是css中一个重要的属性,他规定元素的定位类型,默认值为static,他的值有5种,absolute,fixed,relative,static,inherit.接下来将详细具体对每一 ...
- Cryptography加密和解密
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Se ...
- 使用.bat 文件,批量编译项目文件。
使用.bat 文件,批量编译项目文件. 2008-6-1来源:www.aspcool.com 作者:PCJIM 点击:次 path %path%;D:\Program Files\Microsof ...
- Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量
1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成 ...
- 《你不知道的JavaScript》第二部分:this 详解
第1章 关于this this 是自动定义在所有函数的作用域中的关键字,用于引用合适的上下文对象. ☞ 为什么要使用 this ? this 提供了一种更优雅的方式来隐式"传递"一 ...
- C++ QUICK REFERENCE
C++ string 用法详解 字符串分割(C++) C++ QUICK REFERENCE Matt Mahoney, mmahoney@cs.fit.edu DECLARATIONS enum ...