关于java的printWriter和FileOutputStream

PrintWriter writer = new PrintWriter(filePath);

writer.write(数据);
writer.flush();

writer.close();

注意读写大量数据时,使用printWriter一定要进行flush操作,不然会出现数据输出不全的情况。是因为PrintWriter写入数据时,是用到缓存的。数据是先被读到了内存缓冲区中,再把数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。假如缓存不满时,它是不会自动向文件中写入数据的,这时候如果你调用了close()方法关闭了读写流,那么这部分数据就可能会丢失,所以应该在关闭读写流之前先flush()。flush() 是把缓冲区的数据强行输出。

多个线程读写数据时(主要是写数据,因为读数据并行和串行区别不大,不会进行磁盘IO,但写数据会把数据存到硬盘上,串行磁盘IO会耗费比较多的时间),可以用文件锁

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. PrintStream案例: ```java import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; public class PrintStreamDemo { public static void main(String[] args) { try { File file = new File("output.txt"); FileOutputStream fos = new FileOutputStream(file); PrintStream ps = new PrintStream(fos); ps.println("Hello, PrintStream!"); ps.println("This is a test."); ps.close(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } ``` 2. PrintWriter案例: ```java import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; public class PrintWriterDemo { public static void main(String[] args) { try { File file = new File("output.txt"); PrintWriter pw = new PrintWriter(file); pw.println("Hello, PrintWriter!"); pw.println("This is a test."); pw.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } ``` 3. Scanner案例: ```java import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { try { File file = new File("input.txt"); Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); System.out.println(line); } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } ``` 这些案例分别演示了PrintStream、PrintWriter和Scanner的用法。PrintStream和PrintWriter可以用来向文件或控制台输出内容,Scanner可以用来从文件或控制台读取内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值