import java.io.FileInputStream
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import java.io.InputStreamReader
import java.io.OutputStreamWriter
public class InputStreamReaderTest
{
public static void main(String[] args)
{
try
{
File file=new File("F:\\io\\abc.txt")
FileOutputStream fos=new FileOutputStream(file)
OutputStreamWriter osw=new OutputStreamWriter(fos)
osw.write('大')
osw.write('家')
osw.write('好')
osw.close()
FileInputStream fis=new FileInputStream(file)
InputStreamReader isr=new InputStreamReader(fis)
System.out.println((char)isr.read())
System.out.println((char)isr.read())
System.out.println((char)isr.read())
isr.close()
}
catch (FileNotFoundException e)
{
System.out.println("操作的文件不存在")
}
catch(IOException e)
{
System.out.println("发生IO操作异常")
}
}
}
可以考虑使用bytearrayinputstream&
bytearrayoutputstream
字节数组位于内存
另外,“输入流是从硬盘到内存的读操作”
&
“输出流是从内存到硬盘的写操作”
这句严格说不正确。输入流、输出流的源和目标均是抽象概念,不一定是硬盘或者文件的
首先你要明白,try catch和finally的关系,如果 fileReader = new FileReader异常,catch里面会抛出IOException,但是此时finally里面的代码还是会执行。
所以如果你fileReader = new FileReader异常,导致没有这个对象,那么finally里面
fileReader.close()
会导致不存在的文件流关闭,所以事先判断,避免出现这个错误。