Java InputStream API
Method Summary
int available()
Returns the number of bytes that can be read (or skipped over) from this input stream without blocking by the next caller of a method for this input stream.
void close()
Closes this input stream and releases any system resources associated with the stream.
void mark(int readlimit)
Marks the current position in this input stream.
boolean markSupported()
Tests if this input stream supports the mark and reset methods.
abstract int read()
Reads the next byte of data from the input stream.
int read(byte[] b)
Reads some number of bytes from the input stream and stores them into the buffer array b.
int read(byte[] b, int off, int len)
Reads up to len bytes of data from the input stream into an array of bytes.
void reset()
Repositions this stream to the position at the time the mark method was last called on this input stream.
long skip(long n)
Skips over and discards n bytes of data from this input stream.
Java InputStream 的mark 和reset操作
mark用于标记当前位置;在读取一定数量的数据(小于readlimit的数据)后使用reset可以回到mark标记的位置。
FileInputStream不支持mark/reset操作;BufferedInputStream支持此操作;
mark(readlimit)的含义是在当前位置作一个标记,制定可以重新读取的最大字节数,也就是说你如果标记后读取的字节数大于readlimit,你就再也回不到回来的位置了。
通常InputStream的read()返回-1后,说明到达文件尾,不能再读取。除非使用了mark/reset
分享到:
相关推荐
Java Micro Edition(J2ME)是Java平台的一个子集,主要设计用于资源有限的设备,如移动电话、智能手表和嵌入式系统。...同时,提供的J2ME中文教程J2ME开发下载PDF文档将作为学习资料,便于读者随时查阅和学习。
首先,你需要获取到声音文件的输入流。这通常通过 `getClass().getResourceAsStream()` 方法完成,该方法可以读取类路径(classpath)下的资源。例如,假设有一个名为 "Autorun.wav" 的文件存放在JAR文件的根目录下...
这些类允许开发者从不同类型的输入流中读取数据,并将其转换为Java的数据类型。值得注意的是,某些类可能不包含J2SE中的所有方法,例如浮点数值相关的操作,以适应低资源环境。 至于Java.util包,虽然在CLDC中没有...
在这个例子中,首先通过`Connector.open()`方法创建了一个`HttpConnection`对象,然后通过`openInputStream()`方法获取输入流,最后通过循环读取数据。 #### 总结 J2ME的RMS存储系统和网络连接能力是其核心功能之...
如果成功,我们读取输入流,处理响应内容的类型和数据。 `HttpConnection`类提供了设置请求方法(如GET、POST、PUT等)和请求头的方法,以及获取响应码、类型和长度的接口。注意,`getResponseCode()`方法会实际...
2. 获取输入流和输出流对象,然后就可以通过这些流进行数据传输。 ### 3. 数据传输 - **读取数据**:使用 `InputStream` 对象读取来自服务器的数据。可以使用 `read()` 或 `readBytes()` 方法。 - **写入数据**:...
- **InputStream**: 输入流的基类。 - **OutputStream**: 输出流的基类。 - **InputStreamReader**: 将字节流转换为字符流。 - **OutputStreamWriter**: 将字符流转换为字节流。 ##### 5. GUI组件 - **Canvas**: ...
通常,需要一个线程持续监听输入流,另一个线程负责发送数据,确保聊天的实时性。 三、示例程序分析 "收发短信"文件可能是实现上述功能的源代码示例。开发者可能已经封装了短信收发和蓝牙聊天的相关类,通过解析...
6. **流处理**:在读写网络数据时,通常会用到InputStream和OutputStream,它们提供了读取和写入字节流的接口。 7. **异步网络操作**:为避免阻塞主线程,J2ME鼓励使用回调或事件驱动的方式处理网络请求,如使用...
`openInputStream()`方法打开与服务器的连接并返回输入流,你可以从中读取响应数据。 对于POST请求,你需要设置请求头和正文内容: ```java httpConn.setRequestMethod(HttpConnection.POST); OutputStream os = ...
- 打开文件连接,然后获取输入流 `InputStream`。 - 使用 `InputStream.read()` 或 `DataInputStream` 读取数据,记得每次读取后检查 EOF(End Of File)。 - 读取完成后,记得关闭输入流。 **文件写入**: - 打开...
4. 将`ZipEntry`写入`ZipOutputStream`,然后打开该文件的输入流。 5. 使用`java.io.InputStream`和`java.io.OutputStream`读取源文件并写入`ZipOutputStream`,实现文件内容的压缩。 6. 关闭所有打开的流。 解压缩...
2. 获取输入流(InputStream)以读取数据: ```java InputStream in = connection.openInputStream(); ``` 3. 使用 `InputStream` 的方法如 `read()` 或 `readBytes()` 读取数据。 4. 完成读取后,关闭输入流和连接...
- 使用连接管理器(ConnectionManager)和流I/O(InputStream/OutputStream)进行网络通信。 6. **资源管理**: - 在资源有限的移动设备上,有效的资源管理至关重要,包括内存管理和图形资源的优化。 - 使用预...
3. **获取输入流** 要读取文件,首先需要获取到文件的InputStream。在J2ME中,这通常是通过` MIDlet `类的` getStream `方法或者` RMS (Record Management System)`来实现。对于资源文件,我们可以使用` ...
学习如何使用Connector类和InputStream/OutputStream进行数据交换,以及如何处理网络连接的异步性质。 4. **存储管理**:由于资源有限,J2ME通常使用RecordStore进行本地数据存储。理解RecordStore的API,包括如何...
5. **InputStream/OutputStream**家族:如ByteArrayInputStream和ByteArrayOutputStream,用于处理字节流数据的读写。 6. **Calendar**:用于处理日期和时间,提供了创建、修改和查询日历对象的能力。 7. **Canvas...
根据提供的文件信息,我们可以深入分析J2ME浏览器源码中的关键知识点。...这对于学习J2ME开发和理解其工作原理非常有帮助。此外,通过对这些API的深入理解,开发者可以更有效地利用J2ME来创建丰富的移动应用程序。
下一步是获取Socket的输入流(InputStream)和输出流(OutputStream)。输入流用于接收服务器返回的数据,输出流则用于发送请求到服务器。 ```java InputStream in = socketConnection.openInputStream(); ...