Java-Stream File IO
Java流(Stream)、文件(File)和IO
- Java.io包几乎包含了所有的操作输入、输出需要的类。所有这些流类代表了输入源和输出目标
- 一个流可以理解为一个数据序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据
读取控制台输入
-
Java的控制台输入由
System.in
完成;为获得一个绑定到控制台的字符流,可以把System.in
包装在一个BufferedReader
对象中来创建一个字符流BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
-
BufferedReader
对象创建后,可以使用read()
方法从控制台读取一个字符,或者用readLine()
方法读取一个字符串 -
从控制台读取多字符输入
import java.io.*; public class BRRead { public static void main(String args[]) throws IOException { char c; // 使用System.in 创建 BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("输入字符,按下‘q’键退出。"); // 读取字符 do { c = (char) br.read(); System.out.println(c); } while(c != 'q'); } }
-
从控制台读取字符串
import java.io.*; public class BRReadLines { public static void main(String args[]) throws IOException { // 使用 System.in 创建 BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; System.out.println("Enter lines of text."); System.out.println("Enter 'end' to quit."); do { str = br.readLine(); System.out.println(str); } while(!str.equals("end")); } }
控制台输出
-
控制台的输出由
print()
和println()
完成import java.io.*; // 演示 System.out.write() // write() 不常用 public class WriteDemo { public static void main(String args[]) { int b; b = "A"; System.out.write(b); System.out.write('\n'); } }
读写文件
-
FlieInputStream
用于读取文件// 使用字符串类型的文件名创建一个输入流对象读取文件 InputStream f = new FileInputStream("C:/java/hello"); // 使用文件对象创建输入流对象来读取文件 File f = new File("C:/java/hello"); InputStream out = new FileInputStream(f);
-
FileOutputStream
用来创建一个文件并向文件中写数据
如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建文件// 使用字符串类型的文件来创建一个输出流对象 OutputStream f = new FileOutputStream("C:/java/hello") // 使用一个文件对象创建一个输出流来写文件 File f = new File("C:/java/hello"); OutputStream f = new FileOutputStream(f);
-
实例
import java.io.*; public class filrStreamTest{ public static void main(String args[]) { try{ byte bWrite [] = {12, 32, 3, 20}; OutputStream os = new FileOutputStream("test.txt"); for(int x = 0;x < bWrite.length;x++) { os.write(bWrite[x]); } os.close(); InputStream is = new FileInputStream("test.txt"); int size = is.available(); for(int i = 0; i < size; i++) { System.out.print((char) is.read() + " "); } is.close(); } catch(IOException e) { System.out.print("Exception"); } } }
Java中的目录
- 创建目录
-
mkdir()
方法创建一个文件夹,成功返回true
,失败返回false
-
mkdirs()
方法创建一个文件夹和它的所有父文件夹import java.io.File; public class CreateDir { public static void main (String args[]) { String dirname = "/tmp/user/java/bin"; File d = new File(dirname); //创建目录 d.mkdirs(); } }
- 读取目录
-
如果创建一个file对象并且它是一个目录,调用
isDirectory()
方法会返回true
-
调用对象上的
list()
方法,提取包含的文件和文件列表import java.io.File; public class DirList { public static void main(String args[]) { String dirname = "/tmp"; File f1 = new File(dirname); if (f1.isDirectory()) { System.out.println("目录" + dirname); String s[] = f1.list(); for (int i = 0; i < s.length; i++) { File f = new File(dirname + "/" + s[i]); if (f.isDirectory()) { System.out.println(s[i] + "是一个目录"); } else { System.out.println(s[i] + "是一个文件"); } } } else { System.out.println(dirname + "不是一个目录"); } } }
-
删除目录或文件 可以调用
java.io.File.delete()
方法import java.io.File; public class DeleteFileDemo { public static void main(String args[]) { File folder = new File("/tmp/java/"); deleteFolder(folder); } //删除文件及目录 piblic static void deleteFolder(File folder) { File[] files = folder.listFiles(); if(files!=null) { for(File f: files) { if(f.isDirectory()) { deleteFolder(f); } else { f.delete(); } } } folder.delete(); } }
春天的雨,夏天的风,只为更好的自己和最爱的你!