InputStream字节输入流

OutputStream字节输出流

用于以字节的形式读取和写入数据

下面是使用

字节输入流读取文件
字节输出流写入文件

文件可能不存在,所以使用try catch

public class StreamTest {

    public static void main(String[] args) {
//准备一个文件文件内容是LOL,用来 字节输入流读取文件
File file1 = new File("D:\\lolfilder\\lol.exe\\lol.txt");
//准备一个空文件,用来字节输出流写入文件
File file2 = new File("D:\\lolfilder\\lol.exe\\lol1.txt"); try {
FileInputStream fis = new FileInputStream(file1);
FileOutputStream fos = new FileOutputStream(file2);
byte[] all = new byte[(int) file1.length()];
byte[] all2 = {65,97};
fis.read(all);
fos.write(all2);
for(byte temp:all) {
System.out.println(temp);
}
fis.close();
fos.close();
} catch (Exception e) { e.printStackTrace();
} }

运行结果是:"LOL"的ASCII码值

空文件lol1.txt写入了 Aa

拆分文件与合并文件

拆分文件

将文件按照指定大小分割成多个文件,并且新文件的命名规则为 filename_no.txt

主要使用了FileInputStream中的read方法

public class FileSplitTest {
private static final int SPLIT_SIZE=100; public static void main(String[] args) {
File file = new File("D:\\lolfilder\\lol.exe\\filesplitdemo.txt");
splitFile(file, SPLIT_SIZE); }
public static void splitFile(File file,int size) {
try/*(FileInputStream fis = new FileInputStream(file);)
可以将流定义在try中,当try,catch或finally结束后会自动关闭流,这是jdk7之后的技术 */ { FileInputStream fis = new FileInputStream(file);
byte []fisb = new byte[size];
//fis.read(fisb);
for(int i=1;fis.read(fisb, 0, size)>0;i++) {
File subFile = new File(file.getAbsolutePath().replace(".txt", "_" + i + ".txt"));
FileOutputStream fos = new FileOutputStream(subFile);
fos.write(fisb);
fos.close();
}
fis.close(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

合并文件

public static void main(String[] args) {
int i = 1;
//建立输入文件
File outFile = new File("D:\\lolfilder\\lol.exe\\mergedfile.txt");
try {
//建立输出流
FileOutputStream fos = new FileOutputStream(outFile);
//通过i依次读取
while(new File("D:\\lolfilder\\lol.exe\\filesplitdemo_"+i+".txt").exists()) { File f = new File("D:\\lolfilder\\lol.exe\\filesplitdemo_"+i+".txt");
FileInputStream fis = new FileInputStream(f);
byte[] temp = new byte[fis.available()];
fis.read(temp);
fos.write(temp);
i++;
fis.close();
}
fos.close();
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

最新文章

  1. NOI 题库 7624
  2. swift_属性观察者
  3. 较全的IT方面帮助文档
  4. [游戏模版16] Win32 飞机射击 敌人追踪
  5. sql server create foreign key
  6. SharePoint自动化系列——Add/Remove “Hold” from items
  7. Android 查看webview里面的图片
  8. 记录一下学习Android时遇到一些问题
  9. 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
  10. django初探
  11. Android应用开发之(通过ClipboardManager, ClipData进行复制粘贴)
  12. vi使用高级
  13. JAVA 发送邮件代码---发送HTML内容
  14. JVM笔记——技术点汇总
  15. 在QT中使用C/C++, 在linux下生成 .so, 并调用 .so
  16. AngularJS 1.x系列:AngularJS简介及第一个应用(2)
  17. 将 varchar 值 'ACCE5057EC423F7C' 转换成数据类型 int 时失败
  18. GCD(IV)
  19. 【七】jquery之属性attr、 removeAttr、prop[全选全不选及反选]
  20. Python3选择支持非ASCII码标识符的缘由

热门文章

  1. PS基本操作
  2. 微信小程序自定义下导航页面切换效果的合理写法
  3. kali-linux简单学习(二)
  4. maven的常用构建命令
  5. 简单三步快速学会使用Mybatis-Generator自动生成entity实体、dao接口以及mapper映射文件(postgre使用实例)
  6. spring boot 部署 发布
  7. 机器学习之PCA主成分分析
  8. Asset Catalog Help (十)---Specifying a Resizable Area of an Image
  9. 1 python----pycharm本地部署spark
  10. 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)