首页 > 代码库 > JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作
JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作
基本IO操作 、 文本数据IO操作
java标准IO(input/output)操作
package day07; import java.io.FileOutputStream; import java.io.IOException; /** * java标准IO(input/output)操作 * 输入流InputStrean:用于从数据源读取数据到程序中 * 输出流OutputStream:用于将数据发送至目标 * * 流划分为:节点流,处理流 * 节点流:又叫做低级流,特点:数据源明确,真实负 * 责"搬运"数据的流读写的基础是节点流 * 处理流:又叫高级流,特点:不能独立存在(没有意义), * 用来处理其他流,目的是简化读写操作 * * 文件流 * 文件流是低级流,因为数据源明确,就是读写文件的 * * 文件输出流:java.io.FileOutputStream * 用于将数据写入到文件中 * * @author adminitartor * */ public class FileOutputStream_Write { public static void main(String[] args) throws IOException { /* * 文件流有两种常用模式: * 覆盖写操作,当构造方法只传入一个参数时: * FileOutputStream(String path) * FileOutputStream(File file) * 那么若该文件已存在,会先将文件中所有数据 * 清除。 * * 追加写操作: * FileOutputStream(String path,boolean append) * FileOutputStream(File file,boolean append) * 若第二个参数为true,那么通过当前流写出的内容会 * 被追加到文件末尾。 */ FileOutputStream fos = new FileOutputStream( "fos.txt",true ); String str = "该配合你演出的我演视而不见!"; fos.write(str.getBytes("UTF-8")); System.out.println("写出完毕!"); fos.close(); } }
文件输入流,用于从文件中读取字节的流,是低级流
package day07; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; /** * java.io.FileInputStream * 文件输入流 * 用于从文件中读取字节的流,是低级流 * * @author adminitartor * */ public class FileInputStream_Read { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("fos.txt"); byte[] data = http://www.mamicode.com/new byte[200]; int len = fis.read(data); String str = new String(data,0,len,"UTF-8"); System.out.println(str); fis.close(); } }
使用文件流复制文件
package day07; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * 使用文件流复制文件 * @author adminitartor * */ public class CopyDemo1{ public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("music.mp3"); FileOutputStream fos = new FileOutputStream("music_cp2.mp3"); byte[] buf = new byte[1024*10]; int len = -1; while((len = fis.read(buf))!=-1){ fos.write(buf,0,len); } System.out.println("复制完毕!"); fis.close(); fos.close(); } }
缓冲流 缓冲流是一对高级流,使用它们可以提高读写效率
java.io.BufferedOutputStream 缓冲字节输出流,用于提高写出效率
package day07; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * 缓冲流 缓冲流是一对高级流,使用它们可以提高读写效率 java.io.BufferedOutputStream 缓冲字节输出流,用于提高写出效率 * * java.io.BufferedInputStream 缓冲字节输入流,用于提高读取效率 * * @author adminitartor * */ public class CopyDemo2 { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("mv.mp4"); BufferedInputStream bis = new BufferedInputStream(fis); FileOutputStream fos = new FileOutputStream("mv_cp.mp4"); BufferedOutputStream bos = new BufferedOutputStream(fos); int d = -1; long start = System.currentTimeMillis(); while ((d = bis.read()) != -1) { bos.write(d); } long end = System.currentTimeMillis(); System.out.println("复制完毕!耗时:"+(end-start)+"ms"); bis.close(); bos.close(); } }
缓冲流写出数据的缓冲区问题
package day07; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; /** * 缓冲流写出数据的缓冲区问题 * @author adminitartor * */ public class Bos_Write { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("bos.txt"); BufferedOutputStream bos = new BufferedOutputStream(fos); String str = "i have a pen,i have a apple"; bos.write(str.getBytes()); /* * void flush() * 该方法可以强制将当前缓冲流中缓冲区中 * 的数据写出。 */ bos.flush(); System.out.println("写出完毕!"); bos.close(); } }
JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。