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的类的这部分操作进行演示,如文件的名称.大小等 / ...
随机推荐
- 浅析flex 布局
Flex基本概念: 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis).主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end: ...
- H5 设计尺寸
750*1218 微信下 兼容 7plus 内容高度 居中 1000px 内 750*1448 微信下 兼容 iphoneX 微信导航栏高度 64px 64px = 导航栏44+状态栏20 但是现在 ...
- Rabbitmq的高级特性
消息如何保证100%投递成功? 什么是生产端的可靠性投递? 1.保障消息的成功发出 2.保障MQ节点的成功接收 3.发送端收到MQ节点(Broker)确认应答 4.完善的消息补偿机制 BAT互联网大厂 ...
- 19.Python转义字符及用法
在前面的章节中,我们曾经简单学习过转义字符,所谓转义,可以理解为“采用某些方式暂时取消该字符本来的含义”,这里的“某种方式”指的就是在指定字符前添加反斜杠 \,以此来表示对该字符进行转义. 举个例子, ...
- JS 浏览器地址栏传递参数,参数加密/解密(编码/解码)
我们有时候在JS里进行页面跳转,并且传递了参数(AppName),如下: window.location = "../../views/form/edit.html?AppName=新增&q ...
- springboot中如何启动tomcat
springboot启动时,会自动识别出当前环境是否是web环境还是非web环境. 默认的web环境的context(DEFAULT_WEB_CONTEXT_CLASS):org.springfram ...
- 深入聚焦 call,apply 和 bind
在JavaScript 中,call.apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这 ...
- Python 之 subprocess模块
一.subprocess以及常用的封装函数运行python的时候,我们都是在创建并运行一个进程.像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序.在Python ...
- pycloudtag_wordcloud 中英文标签云
https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&shareId=400000000398 ...
- JSTL标签(核心标准库)
使用JSTL标签步骤 1) 导入jstl支持的jar包(标签背后隐藏的java代码) 注意:使用javaee5.0的项目自动导入jstl支持jar包 2)使用taglib指令导入标签库 <%@t ...