Java——IO(输入输出流)
2014-07-07 09:44
211 查看
*
* 想要知道开发时用到哪些数据对象,只要通过四个明确即可:
* 1.明确源,和目的:
* 源: InputStream reader
* 目的: OutPutStream Writer
* 2.明确数据是否为纯文本数据:
* 源:是纯文本: Reader
* 否: InputStream
* 目的: 是纯文本;: writer
* 否: OutPutSream
* 3.明确具体的设备。
* 源设备:
* 硬盘:File
* 键盘:System.in
* 内存:数组。。
* 网络:Socket流
* 目的设备:
* 硬盘:File
* 控制台:System.out
* 内存:数组。。
* 网络:Socket流
* 4.是否需要其他额外功能:。。
* 1.是否需要高效(缓冲区)
* 是: 就加入Buffer
//读取文件
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);
}
}
*
* 想要知道开发时用到哪些数据对象,只要通过四个明确即可:
* 1.明确源,和目的:
* 源: InputStream reader
* 目的: OutPutStream Writer
* 2.明确数据是否为纯文本数据:
* 源:是纯文本: Reader
* 否: InputStream
* 目的: 是纯文本;: writer
* 否: OutPutSream
* 3.明确具体的设备。
* 源设备:
* 硬盘:File
* 键盘:System.in
* 内存:数组。。
* 网络:Socket流
* 目的设备:
* 硬盘:File
* 控制台:System.out
* 内存:数组。。
* 网络:Socket流
* 4.是否需要其他额外功能:。。
* 1.是否需要高效(缓冲区)
* 是: 就加入Buffer
//读取文件
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 输入输出流教程(二)——【文件】(原作:Java IO Tutorial by Jakob Jenkov)
- java IO-输入输出流(五)
- Java基础-IO-字节输入输出流(笔记)
- 黑马程序员——JAVA基础——IO(一)---流概述,节点流、处理流、转换流与标准输入输出流、打印流、File文件对象、合并流
- Java IO 输入输出流的理解 1
- Java——IO(输入输出流)
- java IO-输入输出流(三)
- java IO-输入输出流(二)
- 黑马程序员_java基础之IO(输入,输出流)
- javaIO总结一(输入输出流)
- Java学习从菜鸟变大鸟之二 输入输出流(IO)
- java io包中 File的输入输出流(读,写操作)
- java IO-输入输出流(四)
- 字符输入输出流:java.io.FileReader和java.io.FileWriter
- Java 输入输出流教程(一)(原作:Java IO Tutorial by Jakob Jenkov)
- 黑马程序员高级学习视频IO输入输出流 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
- Java学习从菜鸟变大鸟之二 输入输出流(IO)
- java IO输入输出流笔记
- JAVA IO输入输出流部分代码的入门应用