Java中InputStream写入到文件中

基于流(Stream)的解决
1.流是单向的有方向性的描述信息流的对象,InputStream是输入流的接口,对程序来说是入,是读,可以从文件读,缓存区读,网络节点读等等.
2.写入文件,对程序来说是出,是写,就是FileOutputStream,可以写入int也可以byte[]

所以解决方案就是从InputStream中读出内存到byte[]中然后,使用FileOutputStream写入文件中如:

//默认写入到本级目录
//FileOutputStream fos = new FileOutputStream("按钮事件控件整理.txt");
//写入到固定的目录
FileOutputStream fos = new FileOutputStream("/Users/11/Desktop/按钮/按钮事件控件整理1.txt", true);

//Unix下的换行符为"\n"			
fos.write("\n".getBytes());						
//Windows下的换行符为"\r\n"			
fos.write("\r\n".getBytes()); 						
//推荐使用,具有良好的跨平台性			
String newLine = System.getProperty("line.separator");			 
fos.write(newLine.getBytes());  

String line1 = "按钮名称: ".concat(sysButton.getButtonName());
fos.write(line1.getBytes());
fos.write("\n".getBytes());

byte[] b = new byte[1024];
int length;
while ((length = is.read(b)) > 0) {
    fos.write(b, 0, length);
}
is.close();
fos.close();// 保存数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Java 的 SequenceInputStream 和 FileOutputStream 类来将一个 InputStream 对象写入到多个文件。 首先,你需要创建多个 FileOutputStream 对象来表示输出到的多个文件: ```java FileOutputStream out1 = new FileOutputStream("file1.txt"); FileOutputStream out2 = new FileOutputStream("file2.txt"); FileOutputStream out3 = new FileOutputStream("file3.txt"); ``` 接下来,你需要创建一个 InputStream 对象,将需要写入的内容写入到这个对象: ```java InputStream in = new FileInputStream("input.txt"); ``` 然后,你可以使用 SequenceInputStream 类将输入流和输出流连接起来: ```java SequenceInputStream seqIn = new SequenceInputStream(in, new SequenceInputStream(out1, new SequenceInputStream(out2, out3))); ``` 最后,你可以使用一个 while 循环将 SequenceInputStream 对象的数据写入到每个 FileOutputStream 对象: ```java int data; while ((data = seqIn.read()) != -1) { out1.write(data); out2.write(data); out3.write(data); } ``` 记得在使用完毕后关闭所有的流对象,可以使用 try-with-resources 语句来自动关闭流对象: ```java try (InputStream in = new FileInputStream("input.txt"); FileOutputStream out1 = new FileOutputStream("file1.txt"); FileOutputStream out2 = new FileOutputStream("file2.txt"); FileOutputStream out3 = new FileOutputStream("file3.txt"); SequenceInputStream seqIn = new SequenceInputStream(in, new SequenceInputStream(out1, new SequenceInputStream(out2, out3)))) { int data; while ((data = seqIn.read()) != -1) { out1.write(data); out2.write(data); out3.write(data); } } catch (IOException e) { // 处理异常 } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值