一、输入流和输出流的概念
Java输入流是用于从源读取数据的字节序列。Java的输出流是用于将字节以序列的形式写入到目标中的。Java中的输入输出流均是抽象类,不能直接创建它们的对象。要使用它们,需要使用其子类。 InputStream类和OutputStream类是抽象类。Java SDK提供了多个InputStream和OutputStream的子类,针对不同的输出目的地和输入源进行数据处理。InputStream和OutputStream类是所有输入/输出流类的超类,它们定义了流操作的基本方法。二、读取文件
下面的代码演示了如何使用Java的FileInputStream类从文本文件中读取数据:import java.io.*; public class ReadFile { public static void main(String[] args) { try { FileInputStream file = new FileInputStream("example.txt"); int i = 0; while((i = file.read()) != -1) { System.out.print((char)i); } file.close(); } catch(Exception e) { e.printStackTrace(); } } }
以上代码创建了一个名为“example.txt”的文件,该文件包含要读取的数据。然后,我们使用FileInputStream对象file来读取该文件中的数据。while循环将每个字节从file对象读取并向控制台写入字符。
三、写入文件
下面的代码演示了如何使用Java的FileOutputStream类向文本文件中写入数据:import java.io.*; public class WriteFile { public static void main(String[] args) { try { FileOutputStream file = new FileOutputStream("example.txt"); byte[] b = "Hello World".getBytes(); file.write(b); file.close(); } catch(Exception e) { e.printStackTrace(); } } }
以上代码创建了一个名为“example.txt”的文件,然后使用FileOutputStream对象file向其中写入“Hello World”字符串。最后,关闭该文件。
四、将输入流用作字符串
下面的代码演示了如何使用Java的BufferedReader类从控制台读取输入,并将其作为字符串处理:import java.io.*; public class ReadString { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter String : "); String s = null; try { s = br.readLine(); } catch(IOException e) { e.printStackTrace(); } System.out.println("You entered : "+s); } }
以上代码通过创建BufferedReader对象来读取System.in流(即控制台输入流)。然后,使用读取到的字符串并输出到控制台。
五、将输出流用作字符串
下面的代码演示了如何使用Java的OutputStreamWriter类向输出流中写入字符串:import java.io.*; public class WriteString { public static void main(String[] args) { OutputStreamWriter out = new OutputStreamWriter(System.out); try { out.write("Hello World"); out.flush(); } catch(IOException e) { e.printStackTrace(); } } }
以上代码创建OutputStreamWriter对象out来向System.out流中写入字符。然后使用write()方法向out对象写入字符串,并在使用flush()方法刷新流时输出到控制台。flush()方法确保所有未写的数据都被写完。