一、字节流 1.字节流有输入和输出流,我们首先看输入流InputStream,我们首先解析一个例子(FileInputStream)。...package com.merryyou.io; import java.io.File; import java.io.FileInputStream; import java.io.IOException...; import java.io.InputStream; /** * Created on 2016/11/15 0015...通常InputStream的read()返回-1后,说明到达文件尾,不能再读取。除非使用了mark/reset。...; import java.io.FileOutputStream; import java.io.IOException; /** * Created on 2016/11/15 0015
InputStreamReader介绍 1.构造方法. public InputStreamReader(InputStream in) {} public InputStreamReader(InputStream...(InputStream in, CharsetDecoder dec) {} 与OutputStreamWriter流相对应的四种有参构造方法,根据对应的字符编码方式将数据解码读取....'w','o','r','l','d'}; OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:\\java.txt...charsetName) throws IOException { InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\java.txt...public InputStreamReader(InputStream in, CharsetDecoder dec) { super(in); if (dec ==
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream...; public class InputStreamDemo { /* * InputStream字节输入流 * FileInputStream:文件字节输入流 * --...public static void main(String[] args) { File file = new File("D:/test/a.txt"); InputStream
下面有三个Demo(Demo访问百度主页获取字节流然后输出)来分别说明三个类的作用: ---- InputStream package 数据流; import java.io.IOException...; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; public class...test = new Test_InputStream(); System.out.println(test.getStream(URL)); } } 通过URL连接获取了InputStream...---- InputStreamReader package 数据流; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader...; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException
大家好,又见面了,我是你们的朋友全栈君 InputStream读取流有三个方法,分别为read(),read(byte[] b),read(byte[] b, int off, int len)。.../** * 读取流 * * @param inStream * @return 字节数组 * @throws Exception */ public static byte[] readStream(InputStream...outSteam.write(buffer, 0, len); } outSteam.close(); inStream.close(); return outSteam.toByteArray(); } 这里不能使用成: InputStream
参考链接: Java Reader类 1、String –> InputStream InputStrem is = new ByteArrayInputStream(str.getBytes())...; 或者 ByteArrayInputStream stream= new ByteArrayInputStream(str.getBytes()); 2、InputStream–>String ... inputStream input; StringBuffer out = new StringBuffer(); byte[] b = new byte[4096]; for (
关于InputStream.read() 在从数据流里读取数据时,为图简单,经常用InputStream.read()方法。这个方法是从流里每次只读取读取一个字节,效率会非常低。...更好的方法是用InputStream.read(byte[] b)或者InputStream.read(byte[] b,int off,int len)方法,一次读取多个字节。 2....关于InputStream类的available()方法 要一次读取多个字节时,经常用到InputStream.available()方法,这个方法可以在读写操作前先得知数据流里有多少个字节可以读取...关于InputStream.read(byte[] b)和InputStream.read(byte[] b,int off,int len)这两个方法都是用来从流里读取多个字节的,有经验的程序员就会发现...仔细阅读Java的API说明就发现了,这个方法 并不保证能读取这么多个字节,它只能保证最多读取这么多个字节(最少1个)。
参考链接: Java捕获多个异常 Java中把非正常情况分为两种:异常(Exception)和错误(Error),其中Error错误一般是指与虚拟机相关的问题,这种错误无法恢复或不可能捕获,而对于Exception...Java7后支持用catch捕获多个异常,也可捕获自定义异常。对于捕获的异常一般可以使用printStackTrace()方法追踪输出至标准错误流。...代码示例如下 除捕获异常以外可以使用throws将异常进行抛出,抛出的异常由上级调用者处理,上级调用者可以进行处理或抛出异常,上级调用者可以抛出更广泛的异常。...JVM将打印异常的跟踪栈信息,并中止程序运行,示例如下 除了使用throws抛出异常外也可以使用throw自行抛出异常。...throw语句可以单独使用, throw语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例。
⌨ 《深入探讨Java字节输入流(InputStream)的奥秘》 摘要 嗨,各位小伙伴们!今天,作为默语博主,我将深入探讨Java中字节输入流(InputStream)的奥秘。...一、什么是字节输入流 字节输入流,简称InputStream,是Java I/O中的重要组成部分。它负责从输入源读取字节数据,为我们提供了在程序中获取外部数据的便捷途径。...扩展理解和代码示例 工作原理 InputStream 以字节为单位读取数据,并将其提供给 Java 程序。它包含了一系列读取字节的方法,如 read(),read(byte[] b) 等。...示例代码 让我们以从文件中读取数据为例,来演示 InputStream 的使用: import java.io.*; public class InputStreamExample { public...答:字节输入流是 Java I/O 中用于从输入源(如文件、网络连接等)读取字节数据的类。它是 InputStream 类的子类,提供了一系列读取字节的方法。
2.1 InputStream的用法 InputStream 是个抽象类,有个抽象方法read(),即一次读一个字节。...马克-to-win:前面我们经常用到System.out.println(),实际上同样 经常用的System.in就是Sun编的一个InputStream的实例对象。...例:2.1.1 import java.io.*; public class TestMark_to_win { public static void main(String args[])
InputStream读取流有三个方法,分别为read(),read(byte[] b),read(byte[] b, int off, int len)。...仔细阅读Java的API说明就发现了,这个方法 并不保证能读取这么多个字节,它只能保证最多读取这么多个字节(最少1个)。...首先编写两个类,一个用户初始化Socket服务,并且处理每个请求都有新的线程去处理,代码如下: package com.service; import java.net.*; public class....*; import java.net.*; import com.util.*; public class DstServiceImpl implements Runnable { Socket socket....*; import java.net.*; import com.util.*; public class DstClient { public static void main(String[]
异常体系结构 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。...Error Error类对象由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。...捕获和抛出异常 异常处理机制 抛出异常 捕获异常 异常处理五个关键字 try、catch、finally.throw.throws 示例代码: public class Test { public...在方法中通过throw关键字抛出异常对象。...如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
file.exists()){//如果文件不存在的话,那么需要去创建 //boolean b1 = file.createNewFile();//直接执行代码,肯定有系统找不到指定路径的异常抛出...file.exists()){ //boolean b1 = file.createNewFile();//直接执行代码,肯定有系统找不到指定路径的异常抛出 boolean b1 = file.mkdirs...Exception{ //首先需要一个文件,可以放到参数里面 File file = new File("file/iotest.txt"); //接下来需要申明一个输入流操作,注意是文件输入流,它是基类InputStream...Exception{ //首先需要一个文件,可以放到参数里面 File file = new File("file/iotest.txt"); //接下来需要申明一个输入流操作,注意是文件输入流,它是基类InputStream...temp); } } 输出结果:就是文件里面所有的字符 最后一定要加上这一句:in.close(); 这里我把它单独写出来,是因为显眼些:原因是 程序中打开的文件流io资源不属于内存里的资源,java
每次只想向文件的末尾添加一个可序列化的对象,于是使用了FileOutputStream(文件名,true)间接的构建了ObjectOutputStream流对象,在向外读数据的时候第一次运行的时候不会报错,在第二次就会报java.io.StreamCorruptedException...代码示例: import java.io.* public class MyObjectOutputStream extends ObjectOutputStream{ public MyFileOutputStream
以下是一些将InputStream转换为File Java示例 手动将InputStream复制到FileOutputStream Apache Commons IO – FileUtils.copyInputStreamToFile...java.io.IOException; import java.io.InputStream; import java.net.URI; public class InputStreamToFile...; import java.io.InputStream; import java.net.URI; public class InputStreamToFile2 { private static...Java 1.7 NIO 3.1如果只想将inputStream保存到某个文件中,请尝试使用Java 1.7 NIO Files.copy InputStreamToFile3.java package...com.mkyong; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.nio.file.Files
下面的方法是:10字节10字节的复制,并且会把目标文件原来的内容给覆盖掉,如果目标文件原来有内容的话。
2、throw : 将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。...注意 : 调用可能会抛出异常的方法,必须添加try-catch代码块尝试去捕获异常 或者 添加throws 声明 来将异常 抛出给更上一层的调用者进行处理,这里需要注意一个细节:新的异常包含原始异常的所有信息...二、自定义异常 前面所讲的异常,都是系统自带的,系统自己处理,但是很多时候项目会出现特有问题,而这些问题并未被java所描述并封装成对象,所以对于这些特有的问题可以按照java的对问题封装的思想,将特有的问题进行自定义异常封装...在Java中要想创建自定义异常,需要继承Throwable或者他的子类Exception。...包装成 RuntimeException 异常继续抛出,但是test2()方法却没有声明 抛出异常 ?
Apache commons是一个强大的Java辅助工具包。它提供的IOUtils可以让我们很便捷的实现InputStream转换为String。...= writer.toString(); 首先把inputStream转换为StringWriter,然后使用StringWriter获取字符串。...或者更加简单的方式:String theString = IOUtils.toString(inputStream, encoding); 注意: 它不会关闭inputStream, 所以为了避免忘了关闭...inputstream,建议把它放到try-with-resources里。...java 9方式 java9的inputstream添加了readAllBtes方法,InputStream转String也可以使用:public static String toString(InputStream
在Java中有两种抛出异常的方式,一种是throw,直接抛出异常,另一种是throws,间接抛出异常。 直接抛出异常是在方法中用关键字throw引发明确的异常。...这种错误不是出错产生,而是人为的抛出。...throw抛出异常的格式为 throw ThrowableObject;//例如:throw new ArithmeticException(); Java的异常处理模块中,所有抛出的异常都必须要有对应的...也就是说,如果在程序中抛出一个异常,那么在方法中就必须要捕获这个异常。