Java 字节和字符流的读写+Buffered

一个关于IO流的导图
在这里插入图片描述
IO流字节的读写,实现复制

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class TestCopy {public static void main(String[] args) throws IOException {copyThree(new File("F:\\joy\\1.mp4"), new File("F:\\1.mp4"));}// 适应小文件。public static void copyOne(File pathInput, File pathOutput) throws IOException {// 获得输入流FileInputStream fis = new FileInputStream(pathInput);// 输出流(写入流)FileOutputStream fos = new FileOutputStream(pathOutput);int a = 0;// 一个一个字节的读取,并写入。while ((a = fis.read()) != -1) {fos.write(a);}fos.close();fis.close();}// 针对文件中等大小的, 对于太大的装不完, 内存溢出。public static void copyTwo(File pathInput, File pathOutput) throws IOException {FileInputStream fis = new FileInputStream(pathInput);	FileOutputStream fos = new FileOutputStream(pathOutput);//用byte数组装 字节 fis.available() 最大的字节数byte[] bb = new byte[fis.available()];fos.write(bb);	fos.close();fis.close();}// 超大文件如mp4的复制, 多次装。public static void copyThree(File pathInput, File pathOutput) throws IOException {FileInputStream fis = new FileInputStream(pathInput);	FileOutputStream fos = new FileOutputStream(pathOutput);//可以定义一次装的大小。缓冲区, 100MBbyte[] bb = new byte[1024 * 1024 * 100];int len;// len 实际读取的字节数。while ((len = fis.read(bb)) != -1) {fos.write(bb, 0, len);}fos.close();fis.close();	}}

JavaIO字符流的读写

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class TestCharCopy {public static void main(String[] args) {// 复制 FileWriter 和 FileReader 读取字符操作。// 把a.txt 里面的内容复制到 b.txt java 太强了不仅跨平台 还支持复制各种文件。try {FileReader fr = new FileReader("a.txt");FileWriter fw = new FileWriter("b.txt");char[] ch = new char[10];int len;while ((len = fr.read(ch)) != -1) {fw.write(ch, 0, len);}fw.close();fr.close();} catch (IOException e) {e.printStackTrace();		}}}

JavaIO流buffered 类 的 读写。

package c12_24;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class TestBuffered {public static void main(String[] args) {// 相对路径测试一下。//method1("a.txt", "b.txt");method2("a.txt", "b.txt");}// bufferedWriter bufferedReaderprivate static void method1(String path1, String path2) {try {BufferedReader br = new BufferedReader(new FileReader(path1));BufferedWriter bw = new BufferedWriter(new FileWriter(path2));//2 MB 缓冲区int len;char[] ch = new char[1024 * 1024];//最多 len 个字节长度读入数组while ((len = br.read(ch)) != -1) {bw.write(ch, 0, len);bw.newLine();//换行}bw.close();br.close();} catch(IOException e) {}}// bufferedInputStream bufferedOutputStream private static void method2(String path1, String path2) {try {BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path1));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path2));int len;// 1kb 缓冲区byte[] b = new byte[1024 * 1];while ((len = bis.read(b)) != -1) {bos.write(b, 0, len);}bos.close();bis.close();} catch(IOException e) {}}}

字节流转换字符流 读取

	public static void method2(String path) {FileInputStream fis = null;InputStreamReader isr = null;try {// 字节流 转换成 字符流fis = new FileInputStream(path);isr = new InputStreamReader(fis);int i;while ((i = isr.read()) != -1) {System.out.print((char)i);}		} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {isr.close(); fis.close();} catch (IOException e) {System.out.println(e);}}}

字节流转换字符流 写入

	// 写入文件public static void method3(String path) {FileOutputStream fos = null;OutputStreamWriter fsw = null;try {fos = new FileOutputStream(path);fsw = new OutputStreamWriter(fos);fsw.write("asshole");} catch (FileNotFoundException e) {System.out.println(e);} catch (IOException e) {System.out.println(e);} finally {try {fsw.close();fos.close();} catch (IOException e) {System.out.println(e);}}}

找出以.png … .jpg … .xml结束的文件

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;public class testFile {public static void main(String[] args) throws IOException {//get endWith .jpg files File imgs = new File("C:\\Users\\admin\\Pictures\\Saved Pictures\\cartoon");//实现过滤器接口 去掉不合规则的 再加到数组File[] lf = imgs.listFiles(new myFilter());for (File file : lf) {System.out.println(file);}}}class myFilter implements FileFilter {@Overridepublic boolean accept(File pathname) {if (pathname.isFile() && pathname.getName().endsWith(".jpg"))return true;return false;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1070. 结绳(25)

1070. 结绳(25) 时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue给定一段一段的绳子,你需要把它们串成一条绳。每次串连的时候,是把两段绳子对折,再如下图所示套接在一起。这样得到的绳子又被当成是另一段绳…

Java预编译和批处理

预编译 package csdn.prepare.take;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class TestCompiling {public static void main(String[] args) {prep…

Java模拟事务Demo

Java操作Oracle事务,以转账为例。 转账之前 package translate.commit;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class CommitRollback…

设计模式4-创建型模式-Prototype模式

意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型对象创建新的对象。 原型模式的结构比较简单,在使用C实现该模式时重点要注意deep copy和shallow copy的问题。prototype模式在实际使用的过程中,可以通过增加一个原型管理…

Android--通知之Notification

前言 之前一篇博客讲了Android下使用Toast的方式提示消息。这篇博客讲解一下在Android中使用Notification提示消息给用户,Notification是一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。在本篇博客中,将介绍…

UDP协议下的DatagramSocket和DatagramPacket

1,UDP协议? 面向无连接,数据不安全,但速度快。不区分客户端与服务端。 2,实现通信? (三个达到) IP 简单说就是你电脑地址。端口 你电脑里面软件的地址。协议 如何进行通讯。 DatagramSocket 用来发送和接收数据报包的…

使用Log4J监控系统日志邮件警报

使用Log4J监控系统日志邮件警报 前言 在系统上线后,有时候遇到系统故障,这时候就可以登录服务器查看系统日志来排查问题。但是需要登录服务器,下载查找相关异常日志比较麻烦。而且没有监控的话,也无法实时了解到系统是否正常运行。…

TCP协议下 Socket 与 ServerSocket

不多bb. package c_20_1_5;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socke…

Autodesk的照片建模云服务—Autodesk ReCap 360 photo

现实捕捉技术方兴未艾,简单的讲现实捕捉技术就是把现实中的现状信息数字化到计算机中以便做进一步的处理。对于不同的应用目的会有不同的捕捉设备,工程或传媒娱乐行业中经常用到的肯定就是三维模型了。那如何得到三维模型呢?我们有多种途径和…

Java多线程,锁(synchronize),饿汉式单例线程,等待处理机制

一,礼让和守护线程 package com.much.hard;public class TestYieldProtect {public static void main(String[] args) {Yield1 y1 new Yield1();y1.setName("A");Yield2 y2 new Yield2();y2.setName("B");//y1.start();//y2.start();Daemon1…

升级ADT22.6后,Android模拟器无法创建

这 两天,在社区里看到有小伙伴们反应,自己在Eclipse下无法创建Android模拟器的问题。起初,自己也没太在意,我一直使用的是 Genymotion模拟器。然后,问题不解决,总有那么一天会让自己碰到的。这不&#xff0…

原来js的parseInt函数还可以这样用

QQpc端登录账号还可以这样玩!!! 图片上来。 wow,我惊呆了。 居然可以登录进出?! 都知道,登录会验证账号是整数,文本框输入的是字符串,会把字符串转成整数, 而…

实验1 熟悉实验环境

本操作系统实验的硬件环境是IA-32(x86)架构的PC机(就是你现在正在使用的计算机),主要软件环境是Bochs gcc 你最喜欢的编辑器/IDE 你最喜欢的操作系统 Linux 0.11源代码。实验的基本流程是根据实验要求编写应用程序、修改Linux 0.11的源代…

前端学习(1032):jquery插件-瀑布流

1网址打开 下载插件 2引入css和js和html 3修改图片

实验2 操作系统的引导

操作系统的引导 实验目的 熟悉hit-oslab实验环境;建立对操作系统引导过程的深入认识;掌握操作系统的基本开发过程;能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 实验内容 此次实验的基本内容是: 阅读《…

从Tom说JSP原理

第一次执行: 客户端通过电脑连接服务器,因为是请求是动态的,所以所有的请求交给WEB容器来处理在容器中找到需要执行的*.jsp文件之后*.jsp文件通过转换变为*.java文件.java文件经过编译后,形成.class文件最终服务器要执行形成的*.…

前端学习(1033):jquery插件-图片懒加载

1下载插件 2html css和js引入 ctrlh 快速替换 必须最后插入