黑马程序员-----Java基础-----IO流-1
来源:互联网 发布:网络礼仪作文 编辑:程序博客网 时间:2024/05/21 06:28
-----<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
IO流学习-1
import java.io.FileWriter;
import java.io.IOException;
import java.io.*;
IO流常用的抽象基类
字符流的抽象基类
Reader Writer 。
字节流的抽象基类
InputStream OutputStream 。
注意:由这四个派生出来的子类名称都是以其父类作为子类名的后缀
如: InputStream的子类 FileInputStream
Reader FileReader。
字符流的特点:
io流适用于操作数据的,
数据的最常见体现形式就是--》文件。
那么先以操作文件为主,
需求:在硬盘上,创建一个文件并写入一些文字数据。
找到一个专门用于操作文件的Writer 子类对象,FileWriter
前缀名是流对象的功能。需要倒包 java.io.*;
public class IOtest1 {
public static void main(String[] args)throws IOException
{
//创建一个FileWriter对象,该对象一被初始化就必须明确备操作的文件。
//而且该文件会被创建到指定目录下,如果该目录下已有同名文件,将被覆盖。
//其实该部就是在明确数据要存放的 目的地。
FileWriter fw = new FileWriter("demo.txt");
//调用writer方法,将字符串写入到流中。
fw.write("abcdef");
//刷新流对象中的缓冲中的数据。
//将数据刷到--》目的地
fw.flush();
//关闭流资源,但是关闭前会刷新一次内部的缓冲中的数据。
//将数据刷到--》目的地中。
//和flush区别: flush刷新后,流可以继续使用,close刷新后流关闭。
fw.close();
}
}
--------------
package IO1;
IO 异常的处理方式
import java.io.*;
public class IOtest2 {
public static void main(String[] args) {
//fw在外部建立引用。在try内进行初始化,这样fw作用于整个函数,不然
//fw.colse 访问不到。
FileWriter fw = null;
try
{
fw = new FileWriter("demo.txt");
fw.write("abcdef");
}
catch (IOException e)
{
System.out.println("catch+"+e.toString());
}
finally
{
try {
//一定要判断是否为空,有几个流,判断几次。
if(fw!= null)
//关流一定要执行。
fw.close();
}
catch (IOException e) {
System.out.println(e.toString());
}
}
}
}
------------------
package IO1;
import java.io.FileWriter;
import java.io.IOException;
/**
演示对已有文件的数据续写。
*/
public class IOtest3 {
public static void main(String[] args) {
//传递一个true参数,代表不覆盖已有文件
//并在已有文件的末尾处进行数据续写。
FileWriter fw = null;
try
{
fw = new FileWriter("demo.txt",true);
fw.write("haha\r\nxiexie");//\r\n 换行符。
}
catch (IOException e)
{
System.out.println("catch+"+e.toString());
}
finally
{
try {
if(fw!= null)
fw.close();
}
catch (IOException e) {
System.out.println(e.toString());
}
}
}
}
---------------------
package IO1;
import java.io.*;
public class IOtest4 {
public static void main(String[] args) throws IOException
{
//创建一个文件读取流对象,和指定名称的文件相关联
//要保证该文件是已经存在的,如果不存在,会发生异常,FileNotFoundException;
FileReader fr = new FileReader("demo.txt");
//调用读取流对象的read方法,
//read();一次读取一次字符,自动往下读
/* int ch1 = fr.read();
System.out.println("ch1="+(char)ch1);
int ch2 = fr.read();
System.out.println("ch2="+(char)ch2);*/
//读到末尾返回-1.
//优化后。
int ch = 0;
while(( ch = fr.read())!=-1)
System.out.println("ch="+(char)ch);
/*while(true)
{
int ch =fr.read();
if(ch==-1)
break;
System.out.println("ch="+(char)ch);
}*/
fr.close();
}
}
-------------------------
package IO1;
import java.io.FileReader;
import java.io.IOException;
//第二种方法,定义一个数组,通过字符数组进行读取。
public class IOtest5 {
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("demo.txt");
//定义一个字符数组,由于存储读到的字符,
//该read(char[]) 返回的是读到字符个数;
char[] buf = new char[1024];
// int num = fr.read(buf);
// System.out.println("num ="+num+ "---"+ new String(buf));
//
// int num1 = fr.read(buf);//偏移0位 取一个,就取到d了,
// System.out.println("num1 ="+num1+ "---"+ new String(buf,0,1));
// fr.close();
//
int num =0;
while((num = fr.read(buf))!=-1)
{
System.out.println(new String(buf,0 ,num));
}
}
}
----------------
package IO1;
//读取一个。java文件 并打印在控制台上。
import java.io.*;
public class IOtest6 {
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("demo.txt");//这里选取java文件。
char [] buf =new char[1024];
int num =0;
while((num = fr.read(buf) )!=-1)
{
System.out.println(new String(buf ,0,num));
}
fr.close();
}
}
-------------
package IO1;
//将c盘一个文本文件复制到d盘 XX
/**
复制原理:
其实就是将c盘下的文件数据存储到d盘的一个文件中。
步骤:
1,在d盘创建一个文件,用于存储c盘文件中的数据。
2,定义读取流和c盘文件关联。
3,通过不断的读写完成数据存储。
4,关闭资源。
**/
import java.io.*;
public class IOtest7 {
public static void main(String[] args)throws IOException
{
copy1();
copy2();
}
public static void copy2()
{
FileWriter fw =null;
FileReader fr = null;
try {
fw = new FileWriter("demo1.txt");//要写到的文件
fr = new FileReader("demo2.java");//需要读取文件
char [] buf = new char [1024] ;
int len = 0;
while ((len = fr.read(buf))!=-1)
{
fw.write(buf ,0 ,len);
}
} catch (IOException e) {
throw new RuntimeException("读写失败");
}
finally
{
if(fr !=null)
try {
fr.close();
} catch (IOException e) {
}
if(fw !=null)
try {
fw.close();
} catch (IOException e) {
}
}
}
//从c盘读一个字符就往d盘写一个字符。
public static void copy1()throws IOException
{
//创建目的地
FileWriter fw = new FileWriter("demo1.txt");//要写到的文件
//与已有文件关联。
FileReader fr = new FileReader("demo2.java");//需要读取文件
int ch =0;
while ((ch = fr.read()) != -1)
{
fw.write(ch);
}
fw.close();
fr.close();
}
}
复制--读一个写一个---读完放到缓冲区,在写入目的地。
-----<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
- 黑马程序员-----Java基础-----IO流-1
- 黑马程序员-java基础 io字符流
- 黑马程序员-java基础 io字节流
- 黑马程序员--JAVA基础之IO流
- 黑马程序员JAVA基础-IO流
- 黑马程序员 Java基础 ---> IO流
- 黑马程序员 JAVA基础<五> IO流
- 黑马程序员-JAVA基础-IO流
- 黑马程序员 java基础回顾---IO流
- 黑马程序员 Java基础----IO流(2)
- 黑马程序员---java基础---5IO流
- 黑马程序员----Java基础之IO流
- 黑马程序员---Java基础总结--IO流
- 黑马程序员-java基础-IO流
- 黑马程序员--JAVA基础之IO流
- 黑马程序员-------java基础 IO流<一>
- 黑马程序员-----java基础IO流<二>
- 黑马程序员-----java基础IO流<三>
- CSS 选择器
- matlab 给定函数 拟合
- Hdu 2015 Multi-University Training Contest10
- OK6410 调试串口 改 普通串口
- 我的第一篇博客
- 黑马程序员-----Java基础-----IO流-1
- 生成元-uva1583
- 例题 7-3 分数拆分 UVa 10976
- hdu1002
- Swift:UIKit中Demo(一)
- 罗技Usb Receiver在Win7 64位系统中驱动安装方法
- 简易相册UIScrollView
- 三极管
- android实现跳转到另一个app程序