A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡建伟 中级黑马   /  2013-10-29 23:59  /  1171 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

      昨晚20:30到10:30准时收听了《免费YY在线公开课5天精通JavaSE》,之前没注意这个YY课程,26号才点开链接详细了解并报名听课,也分享了活动,可直到晚上开课都没有通过审查,可能当天审核老师太忙了,没顾得上,好可惜,又错过了一次课,28号号是第四次课,当天一直刷新页面可还是显示报名已发送,等待审核,本以会再次错过今晚的课,没想到晚上一次刷新页面显示您已经参加此活动,很是惊喜,于是变打开YY进入88897091频道,20:30分付东老师准时开课,当晚课程氛围很好,付东老师开始和大家聊了会天,随后遍进入正题,接下来我把当晚课程所讲知识点和大家分享一下,希望那助想进入黑马的小伙伴们一臂之力,别小看这短短俩小时课程,在传智播客是要用24小时才能讲完这些知识的。如下附上代码,注意注释哦。   第四课—IO:字节流和字符流究竟怎么用File类以及文件夹递归。
   1、字节流:FireInputStream——从文件读取字节数据,常用方法:int read() 、int read(byte[])
              FireOutputStream——想文件写出字节数据,常用方法:void write(int)、void write(byte[],int,int)  

package com.itheima;
import java.io.FileInputStream;
import java.io.IOException;


public class demo_File {
public static void main(String[] args) throws IOException {
  FileInputStream fis = new FileInputStream("abc.txt"); // 创建流对象, 关联文件
  int x;
  while ((x = fis.read()) != -1)  // 读取文件中的1个字节
   System.out.print((char)x);
  fis.close();  // 关闭流, 释放资源
}

}
package com.itheima;
import java.io.FileOutputStream;
import java.io.IOException;
public class demo_out {
public static void main(String[] args)throws IOException{
  FileOutputStream fos=new FileOutputStream("abc.txt");//定义输出流,指向文件,要末就创建文件,要末清空
  fos.write(65);
  fos.close();    // 关闭流释放资源
}
}
    2、字符流:InputStreamReader—从文件读取数据,自动解码为字符串,常用方法:int read()、int read(char[])

               OutputStreamWriter——将字符串自动解码写出字节数据到文件,常用方法:void writer(int)、void write  (char[],int,int)
package com.itheima;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class demo_InputStream {
public static void main(String[] args)throws Exception {
  InputStreamReader in=new InputStreamReader (new FileInputStream("utf-8.txt"), "UTF-8");//定义字符流,指向文件,指定码表
  int x;
  while((x=in.read())!=-1)//先用字节输入流读取文件中的一个字节, 然后内部自动解码(byte->char)
   System.out.print((char)x);
  in.close();//关闭流,释放资源。  注意可
}

}


package com.itheima;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

public class demo_OutputStreamWriter {
public static void main(String[] args) throws Exception {
  OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("abc.txt"));
  out.write("我想写出一个字符串!!!");  // 写出一个字符串, 自动把字符编码为字节
  out.close();   
}

}

    3、File类和文件夹递归:File代表一个路径,这个路径即可以是一个文件,也可以是一个目录,常用方法:isFile()、
                           isDirectory() 、getName() 、getParent() 、mkdir() 、delete() 、listFiles()

package com.itheima;
import java.io.File;

public class demo_File {
public static void main(String[] args) {
  File f1 = new File("C:/Users/Don/Desktop/04_IO/dir");   // 定义一个File对象, 指向目录
  File f2 = new File("C:/Users/Don/Desktop/04_IO/xyz.txt");  // 定义一个File对象, 指向文件
  
  System.out.println("f1.exists() " + f1.exists());  // 判断是否存在
  System.out.println("f2.exists() " + f2.exists());
  
  System.out.println("f1.isFile() " + f1.isFile());  // 判断是否是文件
  System.out.println("f1.isDirectory() " + f1.isDirectory());  // 判断是否是目录
  
  System.out.println("f1.getName() " + f1.getName());   // 获取文件名
  System.out.println("f1.getParent() " + f1.getParent());  // 获取父级路径名
  
  File f3 = new File("C:/Users/Don/Desktop/04_IO/aaa");
  System.out.println("f3.exists() " + f3.exists());
  System.out.println("f3.mkdir() " + f3.mkdir());  // 创建目录
  System.out.println("f3.exists() " + f3.exists());
  System.out.println("f3.delete() " + f3.delete()); // 删除
  
  File f4 = new File(f1, "xxx.txt");
  System.out.println("f1.delete() " + f1.delete()); // 由于有东西, 删不掉
  System.out.println("f4.delete() " + f4.delete()); // 先删内容
  System.out.println("f1.delete() " + f1.delete()); // 再删目录
  
  File f5 = new File("C:/Users/Don/Desktop/04_IO");
  File[] arr = f5.listFiles();
  for (File file : arr) {
   System.out.println(file);
  }
}

}
附录:三个文本文件内容分别如下
           abc.txt                     utf-8.txt                        xyz.txt                                             
          写出一行文本         这是UTF-8码表的文件          Android 平均就业薪水 8xxx元
          再写出一行
          还想写一行

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马