黑马程序员-java基础IO流(1)

原创 2015年07月09日 10:11:21

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

一、IO流

概述:

(1)IO流用来处理设备之间的数据传输。

(2)Java对数据的操作是通过流的方式。

(3)Java用于操作流的对象都在IO包中。

(4)流按操作数据分为两种:字节流和字符流。

(5)流按流向分为:输入流和输出流。


二、FileWriter类

1、定义:

用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter。

注:文件是否可用或是否可以被创建取决于底层平台。特别是某些平台一次只允许一个 FileWriter(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。

2、常用方法:

常用的方法如下:

        FileWriter(File file) -> 根据给定的 File 对象构造一个 FileWriter 对象。

        FileWriter(String fileName) -> 根据给定的文件名构造一个 FileWriter 对象。

        FileWriter(String fileName,boolean append) -> 根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。

        close() -> 关闭此流,但要先刷新它。

    flush() -> 刷新该流的缓冲。

    write(char[] cbuf) -> 写入字符数组。

    write(char[] cbuf,int off,int len) -> 写入字符数组的某一部分。

    write(String str) -> 写入字符串。

3、练习

(1)问题:往c盘的demo.txt文件中写入"abcde"字符串。

package com.itheima;

import java.io.FileWriter;
import java.io.IOException;

/**
 * FileWriter对象
 * 描述:往c盘的demo.txt文件中写入"abcde"字符串
 * 
 * @author jjy
 */
public class FileWriterDemo06{
    
    public static void main(String args[])throws IOException{
   
    //创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。
    //而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。
    //其实该步骤就是在明确数据存放的目的地。
    FileWriter fw = new FileWriter("c:\\demo.txt");
   
    //调用write方法,将字符串写入到流中
    fw.write("abcde");
   
    //刷新流对象中的缓冲中的数据。
    //将数据刷到目的地中
    fw.flush();
   
    //关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据
    //将数据刷到目的地中。
    //和flush区别:flush刷新后,流可以继续使用,close刷新后,流将关闭
    fw.close();
   
    }
}


运行结果:




三、FileReader类

1、定义:

用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。
注:要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。

2、常用方法:


常用的方法如下:


        FileReader(File file) -> 在给定从中读取数据的File的情况下创建一个新FileReader。


        FileReader(String fileName) -> 在给定从中读取数据的文件名的情况下创建一个新 FileReader。


close() -> 关闭该流并释放与之关联的所有资源。


read() -> 读取单个字符。


read(char[] cbuf) -> 将字符读入数组。


read(char[] cbuf, int off, int len) -> 将字符读入数组的某一部分。


3、练习
(1)问题:


package com.itheima;


import java.io.FileReader;
import java.io.IOException;


/**
 *第二种方式:通过字符数组进行读取D盘下的demo.txt文件,然后在控制台上显示。
 * FileWriter对象
 * @author jjy
 */
public class FileReaderDemo10{
    
    public static void main(String args[]){
    
    FileReader fr = null;
try {

//创建一个文件读取流对象,和制定名称的文件相关联
//要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException
fr = new FileReader("D:\\Workspaces\\MyEclipse 10\\exam\\src\\com\\itheima\\demo.txt");
    
//定义一个字符串数组,用于存储读到字符。
//该read(char[])返回的是读到字符个数。
char[] buf = new char[1024];
int num = 0;
while((num=fr.read(buf))!=-1){
System.out.println(new String(buf,0,num));
}

fr.close();
   
} catch (IOException e) {
System.out.println(e.toString());

}finally{
try {
if(fr!=null){
fr.close();
}


} catch (IOException e) {
System.out.println(e.toString());
}
}
    }
}


运行结果:
abcdefghaha

黑马程序员——Java基础测试题

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 黑马程序员——Java基础测试题 第1题:以下代码哪个是正确的?为什么?   a. byte...
  • liu007004
  • liu007004
  • 2015年01月16日 12:49
  • 1435

黑马程序员 —— Java高级视频_IO输入与输出(第二十一天)

------- android培训、java培训、期待与您交流! ---------- 一    对象的序列化 1、什么是对象的序列化? 毕老师:“原来对象只能存...
  • Lin1i1y
  • Lin1i1y
  • 2015年02月02日 16:57
  • 1203

文件传输基础—Java IO流 FileInputStream 的运用

1、字节流 1)包含两个抽象类:InputStream 、 OutputStream      其中,InputStream抽象了应用程序读取数据的方式,而OutputStream抽象了应用程序写出数...
  • Stephen_90
  • Stephen_90
  • 2016年05月06日 20:33
  • 831

Java学习之文件传输基础---Java IO流

一、文件的编码 中文机器上创建的文本文件只能识别ansi编码 如果是由其他地方创建的文本文件 再拷贝出来的则可以识别任意的编码 UTF-8编码 汉字占3个字节 英文占一个 gbk编码 汉字占2...
  • sinat_34443859
  • sinat_34443859
  • 2016年06月15日 23:01
  • 1238

黑马程序员-基础-IO流1

------- android培训、java培训、期待与您交流! ----------  1、IO流概述 (1)用来处理设备(硬盘,控制台,内存)间的数据。 (2)java中对数据的操作都是通过...
  • vicwing
  • vicwing
  • 2013年06月09日 23:13
  • 334

文件传输基础(Java IO流)--慕课网笔记

第1章 文件的编码1-1 文件的编码 编码问题 File类的使用 RandomAccessFile的使用 字节流的使用 字符流的使用 对象的序列化和反序列化 记事本 BOM 之 “联通” “联” “联...
  • helloPurple
  • helloPurple
  • 2017年09月10日 16:55
  • 227

java基础复习(集合、泛型、IO流、多线程、Junit 、内省 、Properties、 路径问题)

集合---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList: 数组实现, 查找快, 增删慢 ...
  • guanhang89
  • guanhang89
  • 2016年04月25日 11:29
  • 4318

黑马程序员----JAVA基础----IO流_1

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、IO流 IO流是用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,而这些操作流...
  • lyl7885000
  • lyl7885000
  • 2015年07月21日 10:21
  • 190

黑马程序员--Java基础之IO流(1)

Java基础之IO流(1) 一、概述 1、IO流用来处理设备之间的数据传输。 流操作数据分为两种:字节流与字符流。字符流的对象中糅合了编码表。 流按流向又分为:输入流,输出流。一般都是成对出现。 2、...
  • AliceAutumn
  • AliceAutumn
  • 2013年11月25日 19:14
  • 817

黑马程序员 Java基础<十>---> IO流<1>

-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------| 概述: 1、IO流:即Input Output的缩写。 ...
  • shengfeixiang
  • shengfeixiang
  • 2013年03月02日 08:50
  • 1585
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-java基础IO流(1)
举报原因:
原因补充:

(最多只允许输入30个字)