字节输入流:InputStream
字节输出流:InputStream
输入流:从输入设备中读取数据
输出流:将数据写入到输出设备中
FileInputStream
- 从文件系统中的某个文件中获得输入字节
- 用于读取诸如图像数据之类的原始字节流
字节流的用途:用于读取图像数据等二进制数据
从文档中读取字符串一般用字符流来完成。
下面是几个读数据的方法,如果返回值为-1,则表示已经达到文件末尾!
public int read() //从输入流中读取一个数据字节 public int read(byte[] b) //从输入流中将最多b.length个字节的数据读入一个byte数组中 public int read(byte[] b,int off,int len) //从输入流中将最多len个字节的数据读入byte数组中 public void close() //关闭此文件输入流并释放与此流有关的所有系统资源
在score.txt中写入“Hello, Java!”,使用read()读取score.txt中的内容。
public static void main(String[] args) { //创建一个FileInputStream对象 try { FileInputStream fis = new FileInputStream("java_stream\score.txt"); //方式一 // int n = fis.read(); // while(n != -1){ //当n为-1时,表示已经达到文件末尾 // System.out.print((char)n); // n = fis.read(); // } //方式二 int n = 0; while((n = fis.read()) != -1){ System.out.print((char)n); } fis.close(); // *** 作完成,关闭文件 } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
输出:
Hello, Java!
使用read(byte[] b)读取score.txt中的内容:
public static void main(String[] args) { //创建一个FileInputStream对象 try { FileInputStream fis = new FileInputStream("java_stream\score.txt"); //read(byte[] b)方法 byte[] b = new byte[100]; fis.read(b); System.out.println(new String(b)); fis.close(); // *** 作完成,关闭文件 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
使用read(byte[] b,int off,int len)读取score.txt中的内容:
try { FileInputStream fis = new FileInputStream("java_stream\score.txt"); //read(byte[] b, int off, int len)方法,int off表示从数组中第几位开始存数据,int len表示存几位数据 byte[] b = new byte[100]; fis.read(b, 0, 5); System.out.println(new String(b)); fis.close(); // *** 作完成,关闭文件 } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
输出:
Hello
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)