慕课网_文件传输基础——Java IO流
Posted 邓戈麟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了慕课网_文件传输基础——Java IO流相关的知识,希望对你有一定的参考价值。
fadf
第1章 文件的编码
1-1 文件的编码 (15:07)
第2章 File 类的使用
2-1 File 类常用 API 介绍 (10:50)
import java.io.File; import java.io.IOException; public class FileDemo { public static void main(String[] args) { File file = new File("E:\\helloworld\\java"); System.out.println(file.exists());// 判断文件/文件夹是否存在 if (!file.exists()) { file.mkdirs();// 创建目录 } else { file.delete(); } // 是否是一个目录 System.out.println(file.isDirectory()); // 是否是一个文件 System.out.println(file.isFile()); File file2 = new File("E:\\helloworld\\1.txt"); if (file2.exists()) { try { file2.createNewFile();// 创建文件 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { file2.delete(); } System.out.println(file);// file.toString()的内容 System.out.println(file.getAbsolutePath()); System.out.println(file.getName()); System.out.println(file.getParent()); } }
2-2 遍历目录 (10:26)
import java.io.File; import java.io.IOException; //列出File的一些常用操作比如过滤、遍历等操作 class FileUtils1 { /* * 列出制定目录下(包括其子目录)的所有文件 */ public static void listDirectory(File dir) throws IOException { if (!dir.exists()) { throw new IllegalArgumentException("目录:" + dir + "不存在"); } if (!dir.isDirectory()) { throw new IllegalArgumentException(dir + "不是目录"); } String[] filenames = dir.list();// 返回的是字符串数组 直接子的名称,不包含子目录下的内容 for (String string : filenames) { System.out.println(dir + "\\" + string); } } } class FileUtils2 { /* * 列出制定目录下(包括其子目录)的所有文件 */ public static void listDirectory(File dir) throws IOException { if (!dir.exists()) { throw new IllegalArgumentException("目录:" + dir + "不存在"); } if (!dir.isDirectory()) { throw new IllegalArgumentException(dir + "不是目录"); } // 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的API File[] files = dir.listFiles();// 返回的是直接子目录(文件)的对象 if (files != null && files.length > 0) { for (File file : files) { if (file.isDirectory()) { listDirectory(file); } else { System.out.println(file); } } } } } public class FileUtilTest { public static void main(String[] args) throws IOException { FileUtils2.listDirectory(new File("E:\\kms")); } }
第3章 RandomAccessFile类的使用
3-1 RandomAccessFile基本操作 (17:16)
import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Arrays; /* * java.io.File类用于表示文件(目录) * File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问 * * RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。 * RandomAccessFile支持随机访问文件,可以访问文件的任意位置。 * * (1)java文件模型 * 在硬盘上的文件是byte byte byte存储的,是数据的集合 * * (2)打开文件 * 有两种模式"rw"(读写)"r"(只读) * RandomAccessFile raf=new RandomAccessFile(file,"rw"); * 文件指针,打开文件时指针在开头pointer=0; * * (3)写文件 * raf.write(int);只写一个字节(后8位),同时指针指向下一个位置,准备再次写入 * * (4)读文件 * int b=raf.read();读一个字节 * * (5)文件读写完成以后一定要关闭(Oracle官方说明) */ public class RafDemo { public static void main(String[] args) throws IOException { File demo = new File("demo"); if (!demo.exists()) { demo.mkdirs(); } File file = new File(demo, "raf.dat"); if (!file.exists()) { file.createNewFile(); } RandomAccessFile raf = new RandomAccessFile(file, "rw"); // 指针的位置 System.out.println(raf.getFilePointer()); raf.write(‘A‘);// 只写了一个字节 System.out.println(raf.getFilePointer()); raf.write(‘B‘); int i = 0x7fffffff; // 用write方法每次只能写一个字节,如果要把i写进去就得写4次 raf.write(i >>> 24);// 高8位 raf.write(i >>> 16); raf.write(i >>> 8); raf.write(i); System.out.println(raf.getFilePointer()); // 可以直接写一个int raf.writeInt(i); String s = "中"; byte[] gbk = s.getBytes("gbk"); raf.write(gbk); System.out.println(raf.length()); // 读文件,必须吧指针移到头部 raf.seek(0); // 一次性读取,把文件中的内容都读到字节数组中 byte[] buf = new byte[(int) raf.length()]; raf.read(buf); System.out.println(Arrays.toString(buf)); String s1 = new String(buf, "gbk"); System.out.println(s1); for (byte b : buf) { System.out.println(Integer.toHexString(b & 0xff) + " "); } raf.close(); } }
第4章 字节流
4-1 字节流之文件输入流FileInputStream-1 (15:09)
4-2 字节流之文件输入流FileInputStream-2 (08:40)
4-3 字节流之文件输出流FileOutputStream (13:24)
4-4 字节流之数据输入输出流 (11:08)
4-5 字节缓冲流 (17:54)
第5章 字符流
5-1 字节字符转换流 (18:09)
5-2 字符流之文件读写流 (05:56)
5-3 字符流的过滤器 (10:25)
第6章 对象的序列化和反序列化
6-1 序列化基本操作 (10:30)
6-2 transient及ArrayList源码分析 (12:41)
6-3 序列化中子父类构造函数问题 (11:43)
fasdfaf
以上是关于慕课网_文件传输基础——Java IO流的主要内容,如果未能解决你的问题,请参考以下文章
Java基础__慕课网学习(22):Java中的instanceof关键字
Java基础__慕课网学习(24):深入理解抽象类与接口(转)
Java基础__慕课网学习(25):Java第二季4.7 UML与PowerDesigner在Java设计中的应用,找了一篇比较好的博客,转载在这里