java中流_java 中流的使用

Java中的流,可以从不同的角度进行分类。

一、按照数:输入流和输出流。

输出流:

0_1332493808Gv0r.gif

输入流:

0_1332493796QEdV.gif

因此输入和输出都是从程序的角度来说的。

二、按照处理数据单位不同可以分为:字节流和字符流。

字节流和字符流的原理是相同的,只不过处理的单位不同而已,字节流、字符流,两类都分为输入和输出操作。

以下是java中io中常用的流。

0_13324938595035.gif

1.在字节流中输出数据主要是使用OutputStream完成,输入流使用的是InputStream。

输出流OutputStream

String a = "d:\\bbb.txt";

File f= newFile(a);

FileOutputStream b= new FileOutputStream(f,true);//不加true会覆盖之前的内容,加上是在后面写。 String c = "这是要输出到文本的内容";byte[] bbb = c.getBytes(); //字符串转类型换为byte[]数组类型

b.write(bbb);

b.close();

输入流InputStream

String a = "d:\\bbb.txt";

File f= newFile(a);

FileInputStream b= newFileInputStream(f);byte[] bbb = new byte[(int)(f.length())];//长度可以直接取文件字节长度b.read(bbb);

b.close();

String str= new String(bbb);//转换成字符串

System.out.println(str);

2.在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。(这四个都是抽象类)。

输出流Writer

String a = "d://bbb.txt";

File f= newFile(a);

FileWriter c= new FileWriter(f,true);//不加true会覆盖之前内容,加上后会在后面写

c.write("这是要输入的内容");//可以直接用字符串,不用转换(写文本类型推荐使用)

c.close();

输入流Reader

String aa ="d:\\bbb.txt";

File bb=newFile(aa);

FileReader cc= newFileReader(bb);char[] dd = new char[100];//长度不好取(不建议用)

cc.read(dd);

cc.close();

String str= new String(dd);//转换为字符串

System.out.println(str)

既然Reader去长度不好用,我们还可以用Scanner(推荐)

String a = "d:\\bbb.txt";

File b= newFile(a);

Scanner sc= new Scanner(b); //Scanner每次只能取一行,所以全部取出要用while循环

while(sc.hasNext()){ //当还有下个值的时候循环

System.out.println(sc.nextLine());

}

sc.close();

Scanner这样取出来结果是一样的

49167658af25d414fc05c223f57621b0.png

三、缓存流(处理流)。

http://www.cnblogs.com/hq233/p/6266928.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中,(Stream)是一种用于操作集合(Collections)或数组的抽象概念。它提供了一种统一的、畅的操作方式,可以对数据进行过滤、映射、排序、聚合等操作,使得代码更加简洁和可读。 使用通常可以分为以下几个步骤: 1. 创建:可以通过集合、数组、文件等方式创建对象。常见的创建方式包括 `stream()` 方法、`Arrays.stream()` 方法和 `Files.lines()` 方法等。 2. 中间操作:支持一系列的中间操作,用于对数据进行转换、过滤等操作,这些操作都会返回一个新的。常见的中间操作包括 `filter()`、`map()`、`sorted()`、`distinct()` 等。 3. 终端操作:终端操作是对进行最终的处理操作,它会产生一个结果或者一个副作用。常见的终端操作包括 `forEach()`、`collect()`、`reduce()`、`count()` 等。终端操作是的触发点,执行终端操作后,将不可再次使用。 下面是一个示例代码,展示了如何使用对集合进行筛选和转换: ```java List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); List<Integer> evenSquares = numbers.stream() .filter(n -> n % 2 == 0) // 筛选偶数 .map(n -> n * n) // 平方 .collect(Collectors.toList()); // 转换为列表 System.out.println(evenSquares); // 输出 [4, 16, 36, 64, 100] ``` 在这个示例中,我们首先通过 `stream()` 方法创建了一个,然后使用 `filter()` 方法筛选出偶数,接着使用 `map()` 方法对每个元素进行平方操作,最后使用 `collect()` 方法将结果收集到一个列表中。 通过使用,我们可以以一种更简洁和链式的方式对集合进行操作,提高了代码的可读性和可维护性。同时,还提供了并行处理的能力,可以充分利用多核处理器的性能优势。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值