InputStream OutputStream 字节输入输出流的抽象基类
Reader Writer 字符输入输出流的抽象基类
InputStreamReader OutputStreamWriter 字节流到字符流的桥梁,可以指定编码方式
DataInputStream DataOutputStream 可以输入输出基本类型
主要方法有
readBoolean() writeBoolean(boolean v)
BufferedReader BufferedWriter 带缓冲的字符输入输出流
while((s=br.readLine())!=null)
{
bw.write(s,0,s.length());
}
PrintWriter 格式化输出,部分功能类似于DataOutputStream
PrintWriter(File file)
使用指定文件创建不具有自动行刷新的新 PrintWriter。
PrintWriter(File file, String csn)
创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。
PrintWriter(OutputStream out)
根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush)
通过现有的 OutputStream 创建新的 PrintWriter。
PrintWriter(String fileName)
创建具有指定文件名称且不带自动行刷新的新 PrintWriter。
PrintWriter(String fileName, String csn)
创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out)
创建不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out, boolean autoFlush)
创建新 PrintWriter。
Scanner 可以使用正则表达式来分析基本类型和字符串的简单文本扫描器
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input);
s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
MatchResult result = s.match();
for (int i=1; i<=result.groupCount(); i++)
System.out.println(result.group(i);
s.close();
在Java的IO流中有一种很特殊的流就是管道流类:PipedInputStream PipedOutputStream.这两个类的实例对象必须要通过connect方法连接.
其实看这么一个程序就知道了管道流类的使用方法.
//sender.java
import java.io.*;
import java.util.*;
public class sender extends Thread
{
PipedOutputStream out = new PipedOutputStream();
public PipedOutputStream getOut()
{
return out;
}
public void run()
{
String str = "Hello,receiver ! I`m sender\n";
try
{
out.write(str.getBytes());
out.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
//receiver.java
import java.io.*;
import java.util.*;
public class receiver extends Thread
{
PipedInputStream in = new PipedInputStream();
public PipedInputStream getIn()
{
return in;
}
public void run()
{
byte [] buf = new byte[1024];
try
{
int len = in.read(buf);
System.out.println("the following is from sender:\n"+new String(buf,0,len));
in.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
//TestPiped.java
import java.io.*;
class TestPiped
{
public static void main(String [] args)
{
sender s = new sender();
receiver r = new receiver();
PipedOutputStream out = s.getOut();
PipedInputStream in = r.getIn();
try
{
in.connect(out);
s.start();
r.start();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
这个程序的功能是sender发送"Hello,receiver ! I`m sender"给receiver然后receiver接受后显示出来并且在前面加上"the following is from sender"的信息.要注意的就是PipedInputStream和PipedOutputStream分别用两个线程传送数据.
分享到:
相关推荐
Java IO是Java编程语言中用于输入/输出...理解并熟练掌握这些概念和API对于任何Java开发者来说都是至关重要的。通过实践和学习,你可以创建高效的文件处理程序,实现数据的高效读写,甚至进行网络通信等更高级的操作。
本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...
### Java核心API知识点详解 #### 一、集合框架 **1.1 什么是集合** 集合是Java编程语言中用于存储和操作多个元素的一种容器。它提供了动态管理元素的能力,允许在运行时添加或删除元素。 **1.2 集合与数组** - ...
【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...
IO流(5:IO Stream-Java API 实战.md) Java的I/O流系统是处理输入输出的强大工具,适用于处理各种数据源。笔记会讲解字节流和字符流的区别,以及如何使用缓冲区提高效率,还会涵盖文件流、网络流和对象序列化。 ...
Java IO学习笔记中提到,流的操作非常容易,Java API中提供了丰富的流处理类,API也大差不差,看看文档即可上手。 在Java IO中,流的分类非常丰富,包括输入流、输出流、字节流、字符流、节点流、处理流等等。掌握...
12. **Java 8及更高版本新特性**:包括Lambda表达式、Stream API、Optional类、日期时间API的改进等。 这些笔记内容全面覆盖了Java的基础和进阶知识,适合从零开始学习Java的人群,通过系统学习,可以建立起扎实的...
除此之外,笔记可能还涉及了Java的最新版本特性,如Java 8的Lambda表达式、函数式接口、Stream API,以及Java 9至14的新特性,如模块化系统、私有接口方法、文本块等。 在实际开发中,测试和调试也是必不可少的部分...
Java Standard Edition(JAVA-SE)是Java编程语言的核心部分,它提供了用于开发和运行桌面应用程序、服务器应用程序以及嵌入式系统的API。张龙老师的JAVA圣思园笔记深入浅出地涵盖了JAVA-SE的基础知识点,帮助学习者...
可能会有些不全,也希望大神们能够指出,刚刚学习,有太多的东西不懂,见谅~
Java IO API提供了一套丰富的类和接口,使得开发者可以方便地进行文件读写、网络通信、流处理等操作。 1. **基本概念** - 流(Stream):Java IO中的核心概念,代表数据的源或目标。流可以是字节流或字符流,分为...
在IO流部分,笔记会介绍输入/输出流的分类,如字节流和字符流,以及文件操作的相关API。网络编程也会被提及,包括Socket编程的基本原理和应用实例。 线程是并发编程的基础,笔记会讲解线程的创建方式(Thread类和...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。
Java开发学习笔记主要针对的是初学者,旨在帮助他们掌握Java编程的基础知识。下面将详细讲解Java开发中的核心概念和步骤。 一、Java环境变量设置 在开始Java编程之前,我们需要安装Java Development Kit (JDK)并...
首先,Java笔记主要涉及Java语言的基础语法、面向对象编程概念、异常处理、集合框架、多线程、IO流、网络编程等内容。Java的基础是理解其核心特性,如类、接口、继承、封装、多态等面向对象概念。异常处理确保程序在...
这部分可能介绍了JDBC(Java Database Connectivity),它是Java连接和操作数据库的标准API,包括连接、执行SQL语句、处理结果集等。 5. **设计模式(设计模式.md)**: 设计模式是解决常见编程问题的模板,Java...
- **Java 8**:Lambda表达式、Stream API、日期时间API等。 - **Java 9**:模块系统、JShell(REPL)等。 - **Java 11**:长期支持版本,增强HTTP客户端等。 - **Java 17**:继续强化安全性,引入文本块等。 这...
文件和IO流是Java中的重要部分,笔记会教给学生如何在Java中读写文件,使用各种输入/输出流进行数据传输。网络编程也是Java的一大应用场景,笔记可能涵盖Socket编程,让学生了解如何创建客户端和服务器进行通信。 ...
- Java 8的流API:提供了更强大的数组处理能力。 #### 第五章:面向对象(基础) - **面向对象、类与对象的定义** - 面向对象编程的基本概念:封装、继承、多态。 - 类与对象的关系:类是对象的模板,对象是类...