-
递归操作查看全部
-
字符流的过滤器 BufferedReader---->readLine不识别换行符 BufferedWriter/PrintWriter---->write public static void main(String[] args) throws IOException { // 对文件进行读操作,套接流,需要套在节点流上 BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("F:\\IO流\\Buffered/br.txt"))); // 使用BufferedWriter对文件进行写操作 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("F:\\IO流\\Buffered/bw.txt"))); // 使用PrintWriter对文件进行写操作 PrintWriter pw = new PrintWriter("F:/IO流/Buffered\\pw.txt"); bw.append("我是使用Buffered方法写入的"); pw.append("我是使用Print方法写入的"); String line; while ((line = br.readLine()) != null) { // 一次读一行,并不能识别换行符,输出时可以加上ln System.out.println(line); bw.write(line); // 单独写出换行 bw.newLine(); bw.flush(); pw.println(line); pw.flush(); } br.close(); bw.close(); pw.close(); }查看全部
-
InputStreamReader和OutputStreamWriter的使用 public static void main(String[] args) throws IOException { // 读出文件内容 使用默认编码方式,其他编码方式可加在文件路径后面加上用双引号括起来 InputStreamReader isr = new InputStreamReader(new FileInputStream( "F:\\IO流\\IsrAndOsw\\isr.txt"),"gbk"); // 写入文件内容 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream( "F:\\IO流\\IsrAndOsw\\osw.txt")); //覆盖写入 osw.write("你好"); //不覆盖写入,加入后面 osw.append("世界"); // 一次读取一个字符 /*int c; while ((c = isr.read()) != -1) { System.out.print((char) c); }*/ char[] buffer = new char[1024]; // 批量读取,放入buffer这个字符数组 while ((isr.read(buffer)) != -1) { osw.write(buffer); osw.flush(); } isr.close(); osw.close(); }查看全部
-
字符流2查看全部
-
字符流1查看全部
-
bos.flush();//刷新缓冲区查看全部
-
字节流之文件输入流FileOutputStream操作 /** * 单字节,不带缓冲进行文件拷贝 * @param srcFile * @param destFile * @throws IOException */ public static void copyFileByByte(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new IllegalArgumentException("文件:"+srcFile+"不存在"); } if(!srcFile.isFile()){ throw new IllegalArgumentException(srcFile+"不是文件"); } FileInputStream in = new FileInputStream(srcFile); FileOutputStream out = new FileOutputStream(destFile); int c ; while((c = in.read())!=-1){ out.write(c); out.flush(); } in.close(); out.close(); }查看全部
-
BufferedInputStream/BufferedOutputStream操作 /** * 进行文件的拷贝,利用带缓冲的字节流 * @param srcFile * @param destFile * @throws IOException */ public static void copyFileByBuffer(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new IllegalArgumentException("文件:"+srcFile+"不存在"); } if(!srcFile.isFile()){ throw new IllegalArgumentException(srcFile+"不是文件"); } BufferedInputStream bis = new BufferedInputStream( new FileInputStream(srcFile)); BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(destFile)); int c ; while((c = bis.read())!=-1){//非单个字节读取,一次性读一定的内容(填满缓冲区大小为止,默认8M大小) bos.write(c); bos.flush();//刷新缓冲区,一定要写,否则写入不进去;Ps:读取的时候无需flush,写入的时候最好要或有些地方一定要flush。 } bis.close(); bos.close(); }查看全部
-
字节流之文件输入流FileInputStream、输出流FileOutputStream简介 II 7)DataOutputStream/DataInputStream 对"流"功能的扩展,可以更加方面的读取int,long,字符等类型数据 DataOutputStream writeInt()/writeDouble()/.../writeUTF()【采用utf-8编码写出】/writeChars()【采用utf-16be编码写出】 DataInputStream readLong()/.../readUTF() 8)BufferedInputStream&BufferedOutputStream 这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入 或读取操作时,都会加上缓冲,这种流模式提高了IO的性能 从应用程序中把输入放入文件,相当于将一缸水倒入到另一个缸中: FileOutputStream--->write()方法相当于一滴一滴地把水“转移”过去 DataOutputStream--->writeXxx()方法 或 FileOutputStream--->write()“包装(批量)”方法会方便一些,相当于一瓢一瓢把水“转移”过去 BufferedOutputStream--->write()方法更方便,相当于一瓢一瓢先放入桶(缓冲区)中,再从桶中倒入到另一个缸中,性能提高了查看全部
-
DataOutputStream/DataInputStream操作 I public static void main(String[] args) throws IOException { String file = "demo/dos.dat"; DataOutputStream dos = new DataOutputStream( new FileOutputStream(file)); dos.writeInt(10); dos.writeInt(-10); dos.writeLong(10l); dos.writeDouble(10.5); //采用utf-8编码写出 dos.writeUTF("中国"); //采用utf-16be编码写出 dos.writeChars("中国"); dos.close(); IOUtil.printHex(file); } public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub String file = "demo/dos.dat"; IOUtil.printHex(file); DataInputStream dis = new DataInputStream( new FileInputStream(file)); int i = dis.readInt(); System.out.println(i); i = dis.readInt(); System.out.println(i); long l = dis.readLong(); System.out.println(l); double d = dis.readDouble(); System.out.println(d); String s = dis.readUTF(); System.out.println(s); dis.close(); }查看全部
-
copyFile()查看全部
-
单字节读取不适合大文件,批量读取对大文件而言效率高查看全部
-
通过缓存方式读取查看全部
-
FileInputStream读写16进制流查看全部
-
字节流1查看全部
举报
0/150
提交
取消