标签:path 参考 long 习惯性 article 字符 取数 方法 今天
关于java 流类的复习;习惯性的复习按照图结构一层层往下深入去了解去复习,最后通过代码来实现感觉印象会更深刻一些;
关于 I/O流:IO可以理解为JAVA用来传递数据的管道,创建一个IO,就相当于将管道与某个数据源连接到一起了.
字节流:数据流中最小的数据单元是字节。 字节:字节是一个八位的二进制数是一个很具体的存储空间;
字符流:数据流中最小的数据单元是字符; 字符:是一个抽象的符号,例如 1、2、3 、人 等 (并不是说直接传输字符,而是将字符按照指定的编码规则,转成对应的字节流后进行传输)
java的常用输入、输出流其实都是继承自4个抽象类,分别是:
基于单字节的InputStream,OutputStream类(面向字节形式的I/O)
基于双字节的Unicode代码单元的 Reader, Writer类(面向字符形式的I/O)
Reader(读入Unicode编码字节)
/*CharArrayReader 从字符串数组中读取字符 */ public static void chararrayreader() throws IOException { char [] a = new char[]{‘a‘,‘b‘,‘c‘}; CharArrayReader charArrayReader = new CharArrayReader(a); /* 当 CharArrayReader 读取不到字符时 返回值为-1 */ int i = 0; while ((i = charArrayReader.read())!= -1){ System.out.println("字符 :"+(char)i); } }
/* 关于 从本地文件中读取 字符序列 */ public static void inputreader() throws IOException { /*从文件中 读取数据到 数据流 */ InputStream inputStream = new FileInputStream("E:\\test.txt"); /* 将字节流转换成 字符流 */ InputStreamReader inputStreamReader = new InputStreamReader(inputStream); char []cha = new char[1024]; int len = inputStreamReader.read(cha); System.out.println(new String(cha,0,len)); /* 关流 */ inputStreamReader.close(); }
Writer(写入) 这个不多讲 和上边reader 相反 一个写入,一个读出 直接上代码:
代码参考:http://blog.csdn.net/lanhuzi9999/article/details/36188047
/* 关于 从本地文件中读取 字符序列 */ public static void inputreader() throws IOException { /*从文件中 读取数据到 数据流 */ InputStream inputStream = new FileInputStream("E:\\test.txt"); /* 将字节流转换成 字符流 */ InputStreamReader inputStreamReader = new InputStreamReader(inputStream); char []cha = new char[1024]; int len = inputStreamReader.read(cha); System.out.println("本地文件:"+new String(cha,0,len)); /* 关流 */ inputStreamReader.close(); } /* Writer */ public static void writer() throws IOException { /*String Writer */ String string = "从今天起好好复习"; StringWriter stringWriter = new StringWriter(); stringWriter.write("你好吗 "); stringWriter.write("这是写入的 writer "); System.out.println(string+stringWriter.toString() ); /*OutputStreamWriter FileWriter*/ OutputStream out = System.out;//打印到控制台 // OutputStream out = new FileOutputStream("D:\\demo.txt");//打印到文件 OutputStreamWriter osr = new OutputStreamWriter(out);//输出 // OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("D:\\demo.txt"));//两句可以综合到一句。 // int ch = 97;//a // int ch = 20320;//你 // osr.write(ch); String str = "你好吗?";//你好吗? osr.write(str); osr.flush(); osr.close(); } public static void transWriteByBuf() throws IOException { // OutputStream out = System.out;//打印到控制台。 OutputStream out = new FileOutputStream("D:\\demo.txt");//打印到文件。 OutputStreamWriter osr = new OutputStreamWriter(out);//输出 // OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream("D:\\demo.txt"));//综合到一句。 BufferedWriter bufw = new BufferedWriter(osr);//缓冲 // int ch = 97;//a // int ch = 20320;//你 // osr.write(ch); String str = "你好吗?\r\n我很好!";//你好吗? bufw.write(str); bufw.flush(); bufw.close(); }
File 类 (重点讲解)
创建方法
1.boolean createNewFile() 不存在返回true 存在返回false
2.boolean mkdir() 创建目录
3.boolean mkdirs() 创建多级目录
删除方法
1.boolean delete()
2.boolean deleteOnExit() 文件使用完成后删除
判断方法
1.boolean canExecute()判断文件是否可执行
2.boolean canRead()判断文件是否可读
3.boolean canWrite() 判断文件是否可写
4.boolean exists() 判断文件是否存在
5.boolean isDirectory()
6.boolean isFile()
7.boolean isHidden()
8.boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断
获取方法
1.String getName()
2.String getPath()
3.String getAbsolutePath()
4.String getParent()//如果没有父目录返回null
5.long lastModified()//获取最后一次修改的时间
6.long length()
7.boolean renameTo(File f)
8.File[] liseRoots()//获取机器盘符
9.String[] list()
10.String[] list(FilenameFilter filter)
/*File 类 */ public static void File () throws IOException { System.out.println("woca "); /*创建一个路径*/ File file3 = new File("E://file//jj"); System.out.println( file3.mkdir()); /*创建一个文件 */ File file = new File("E://te.txt"); file.createNewFile(); /* 根据一个 基路径去创建文件 */ File file2 = new File(file3,"tt.txt"); file2.createNewFile(); /* 判断 file对象是否是 文件或者路径 */ System.out.println("是否是路径"+file3.isDirectory()); System.out.println("是否是文件"+file2.isFile()); /* 获取某个文件夹内文件的目录 */ File file4 = new File("E://workspace"); String names[] = file4.list(); for(String name :names) { System.out.println(name); } /* 删除文件 */ file2.delete(); }
标签:path 参考 long 习惯性 article 字符 取数 方法 今天
原文地址:http://www.cnblogs.com/ykjava/p/6781522.html