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的类的这部分操作进行演示,如文件的名称.大小等 / ...
随机推荐
- 51 Nod 1101 换零钱(动态规划好题)
1101 换零钱 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 N元钱换为零钱,有多少不同的换法?币值包括1 2 5分,1 2 5角,1 2 5 ...
- noi.ac #534 猫
题目链接:戳我 [问题描述] 有n座山,m只猫和p个工作人员.山从左往右编号为1∼n,山i和i−1之间的距离是di米. 有一天,猫都到山上去玩了:第i只猫会到山hi去,并一直玩到时间ti,之后就在那座 ...
- Linux添加磁盘和挂载
1.新建一个虚拟磁盘,例:20GB 2.重启后使用 fdisk -l 查看磁盘详细信息,刚添加的磁盘信息如下: 3.对刚添加的磁盘进行分区 fdisk /dev/sdc 4.格式化分区 mkfs.ex ...
- Linux网络编程三、 IO操作
当从一个文件描述符进行读写操作时,accept.read.write这些函数会阻塞I/O.在这种会阻塞I/O的操作好处是不会占用cpu宝贵的时间片,但是如果需要对多个描述符操作时,阻塞会使同一时刻只能 ...
- 记一次protobuf和hbase自带protobuf版本冲突的解决
使用protobuf生产模板代码,使用的版本是: <dependency> <groupId>com.google.protobuf</groupId> <a ...
- mysql 更新存在就累加,不存在就插入语法
INSERT INTO tb_http_tomcat_monitor_1 (id,total_res_time,total_req_count,req_dispose_count,queue_size ...
- linux升级安装openssh时出现依赖冲突
通过如下方式下载到openssh安装包 https://www.cnblogs.com/qq931399960/p/11120429.html -rwxrwxrwx. root root Jul : ...
- WOE1-Feature Selection 相关:一个计算WOE和Information Value的python工具
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...
- Cookie类
Cookie类:用于存储会话数据 1)构造Cookie对象 Cookie(java.lang.String name, java.lang.String value) 2)设置cookie void ...
- 003-Spring4 扩展分析-spring类初始化@PostConstruct > InitializingBean > init-method、ApplicationContext、BeanPostProcessor、BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor
一.spring类初始化@PostConstruct > InitializingBean > init-method InitializingBean接口为bean提供了初始化方法的方式 ...