Java输入输出流

一 IO结构

Java输入输出流_第1张图片
IO结构

二 . Input&OutputStream

这一部分是读取字节码,

1.InputStream

常见方法
  • read()将数据读入流中;
  • skip () 跳过流中的若干字节
  • available ()返回当前流中的可用字节
  • mark() 在流中标记一个位置
  • markSupported() 返回一个 boolean值,描述流是否支持标记和复位
  • close () 关闭流

2.OutputStream

常见用法
  • write() 写数据到流
  • flush ()强制将被缓冲的内容写到输出(在文件输入的时候会将输入内容缓存在内存当中,在关闭输出流之前需要先把环存在内存中的哪痛存入到文件当中)
  • close()关闭流

3.常见的Input&OutputStream

1.控制台Input&Output
  • input
BufferedReader br = new BufferedReader(new 
                       InputStreamReader(System.in));//这里是通过bufferreader去读取的
  • Output
System.out.println();
2.File的Input&OutputStream
  • input——FileInputStream
File f = new File("C:/java/hello");
InputStream in = new FileInputStream(f);//这两种方法都可以

//InputStream f = new FileInputStream("C:/java/hello");
  • 1 public void close() throws IOException{}
    关闭此文件输入流并释放与此流有关的所有系统资源。抛出IOException异常。
  • 2 protected void finalize()throws IOException {}
    这个方法清除与该文件的连接。确保在不再引用文件输入流时调用其 close 方法。抛出IOException异常。
  • 3 public int read(int r)throws IOException{}
    这个方法从 InputStream 对象读取指定字节的数据。返回为整数值。返回下一字节数据,如果已经到结尾则返回-1。
  • 4 public int read(byte[] r) throws IOException{}
    这个方法从输入流读取r.length长度的字节。返回读取的字节数。如果是文件结尾则返回-1。
  • 5 public int available() throws IOException{}
    返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取的字节数。返回一个整数值。
  • output——FileOutputStream
File f = new File("C:/java/hello");
OutputStream f = new FileOutputStream(f);

//OutputStream f = new FileOutputStream("C:/java/hello");
  • 1 public void close() throws IOException{}
    关闭此文件输入流并释放与此流有关的所有系统资源。抛出IOException异常。
  • 2 protected void finalize()throws IOException {}
    这个方法清除与该文件的连接。确保在不再引用文件输入流时调用其 close 方法。抛出IOException异常。
  • 3 public void write(int w)throws IOException{}
    这个方法把指定的字节写到输出流中。
  • 4 public void write(byte[] w)
    把指定数组中w.length长度的字节写到OutputStream中。

Reader & Writer

Reader writer用于读取字符码

Reader (BufferReader & FileReader)

常见用法

writer (Bufferwriter & FileWriter)

常见用法

其他

print,println,write之间的区别

  • print()输出 &&不换行
  • println ()输出 && 换行
  • printf ()和C中的几乎一样
  • write ()对比于Print是将所有的字符类型都转换成string再输出,write只能输出和原本就是String的类型

java中读取文件中中文出现乱码

这个时候我们需要设置fileInputStream的默认编码格式

BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"UTF-8"));  

Reader和 inputStream之间的区别

inputStream用于将输入从字节码读入,而Reader是将字符码读入

从文件中读入字符的方法

bufferReader=new BufferedReader(new InputStreamReader(new FileInputStream(detailFileName),"GBK"));
先是有一个fileInputStream之后再用这个构建InputStreamReader,之后再构建BufferReader。

你可能感兴趣的:(Java输入输出流)