Java字节流文件封装
/**
* 字节流封装方法
*/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; public class FileUtilStream {
//<!----------------------------------------------------读取文件---------------------------------------------------->
public static String readFile(String path){
StringBuffer sb=new StringBuffer();
//1.创建文件的字节流
InputStream fis=null;
try {
fis=new FileInputStream(path);//InputStream为抽象类,不能实例化
byte [] bytes=new byte[1024];//数组
int data=0;
while ((data=fis.read(bytes))!=-1) {//(data=fis.read(bytes))!=-1表示读到最后了
//字符串的转换
String str=new String(bytes,0,data);//后面加,0,data是防止1024出现0000000
sb.append(str);
}
} catch (Exception e) {
e.printStackTrace();
}
finally{
//2.关闭字节流
try {
if (fis!=null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
//<!----------------------------------------------------写入文件---------------------------------------------------->
public static boolean writeFile(String path,String content,boolean flag){
boolean result=false;
//1.创建文件的字节流
OutputStream fos=null;
try {
//2.创建 输出流对象
fos=new FileOutputStream(path, flag);//flag表示是否覆盖,flag=true表示在末尾添加,flag=false表示覆盖
//字符串String--->byte[]
byte[] words=content.getBytes();
//写入
fos.write(words, 0, words.length);
result=true;
} catch (Exception e) {
}
finally{
try {
if (fos!=null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
//<!----------------------------------------------------文件的复制---------------------------------------------------->
public static boolean copyFile(String frompath,String toPath){
boolean result=false;
// 文件的复制:先读取要复制的文件,再写入新文件
//1.读取文件
InputStream fis=null;
//2.写入文件
OutputStream fos=null;
try {
//3.读取
fis=new FileInputStream(frompath);
//4.写入
fos=new FileOutputStream(toPath);
//5.边读边写
StringBuffer content=new StringBuffer();
//【读】
byte [] bytes=new byte[1024];//数组
int data=0;
while ((data=fis.read(bytes))!=-1) {//(data=fis.read(bytes))!=-1表示读到最后了
//字符串的转换
String str=new String(bytes,0,data);//后面加,0,data是防止1024出现0000000
content.append(str);
}
//【写】
//字符串String--->byte[]
byte[] words=content.toString().getBytes();
//写入
fos.write(words, 0, words.length);
result=true;
} catch (Exception e) {
}
finally{
try {
if (fis!=null) {
fis.close();
}
if (fos!=null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
}
Java字节流文件封装的更多相关文章
- Java字节流文件复制
1.字节流 在 Java 中,文件的复制使用字节输入流和字节输出流实现,java.io 包有 InputStream 和 OutputStream 这两个顶层抽象类规范了读写文件所需的核心 API. ...
- java读取文件封装的一个类(有部分代码借鉴别人的)
package modbus.rtu.calc; import java.io.BufferedReader; import java.io.FileInputStream; import java. ...
- java 字节流文件复制方法总结
1.使用字节流每次读写单个字节 public static void main(String[] args) throws IOException { FileInputStream fis = ne ...
- 使用Java字节流拷贝文件
本文给出使用Java字节流实现文件拷贝的例子 package LearnJava; import java.io.*; public class FileTest { public static vo ...
- Java 字节流实现文件读写操作(InputStream-OutputStream)
Java 字节流实现文件读写操作(InputStream-OutputStream) 备注:字节流比字符流底层,但是效率底下. 字符流地址:http://pengyan5945.iteye.com/b ...
- Java字节流实现文件夹的拷贝
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...
- JAVA字节流(读写文件)
InputStream此抽象类是表示字节输入流的所有类的超类.需要定义 InputStream 的子类的应用程序必须始终提供返回下一个输入字节的方法. int available()返回此输入流方法的 ...
- java字节流和字符流,以及java文件操作
A.首先说字节流:1.字节流在操作的时候不会用到缓冲区(也就是内存)2.字节流可用于任何类型的对象,包括二进制对象3.字节流处理单元为1个字节,操作字节和字节数组.InputStream是所有字节输入 ...
- java 中 “文件” 和 “流” 的简单分析
java 中 FIle 和 流的简单分析 File类 简单File 常用方法 创建一个File 对象,检验文件是否存在,若不存在就创建,然后对File的类的这部分操作进行演示,如文件的名称.大小等 / ...
随机推荐
- Twilio收发短信笔记
twlio基本使用 Twilio是一个做成开放插件的电话跟踪服务(call-tracking service),可用来进行短信,图片等信息的集中于转发,貌似只支持北美地区的电话. 现有一个需求是:客户 ...
- convert:图片转pdf失败
造冰箱的大熊猫@cnblogs 2019/1/21 1.环境 操作系统/Ubuntu 16.04.5 LTS,内核/4.15.0-43-generic,convert/ImageMagick 6.8 ...
- 用bootstrap写一个登陆页
<div class="container"> <p class="text-center marginTop35">后台管理系统< ...
- JavaWeb_(Struts2框架)Servlet与Struts区别
JavaWeb_(SSH)使用Servlet实现用户的登陆 传送门 JavaWeb_(SSH)使用Struts框架实现用户的登陆 传送门 MySQL数据库中存在Gary用户,密码为123:第一次登陆时 ...
- 服务不支持 chkconfig 的解决办法
在chkconfig --add servername的时候老是提示服务不支持 chkconfig 经过查找,解决办法如下. 1.脚本tomcatstart前三行如下: #!/bin/bash #ch ...
- Jmeter -- 脚本录制
步骤如下: 1. 添加http代理服务器(Add -> Non-TestElement -> HTTP(S)Test Script Recorder) 2. 对http代理进行配置,如下图 ...
- R-ets()
前情需知 指数预测模型 指数模型是用来预测时序未来值的最常用模型.这类模型相对比较简单,但是实践证明它们的短期预测能力较好.不同指数模型建模时选用的因子可能不同.比如 单指数模型(simple/sin ...
- 微信小程序获得unionid
一.微信小程序中app.js中: wx.login({ success: res => { if(res.code){ var code = res.code; wx.getSetting({ ...
- leetcode题目2.两数相加(中等)
题目描述: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来 ...
- python3笔记目录大纲汇总
篇一.python3基础知识和语句 python3笔记一:python基础知识 python3笔记二:进制转换与原码反码补码 python3笔记三:运算符与表达式 python3笔记四:if语句 py ...