寫了讀取文件寫文件的小例子,Mark如下,之後本身好找。java
發現了新的方法,File.createNewFile();建立指定名稱的空文件數組
File file=new File("D:/愛你/但願/","工做.txt");
if(!file.exists())
file.getParentFile().mkdirs();
file.createNewFile();性能
public class zijie_in_output { /** * 字節流的方法輸入輸出到一個文件或者控制檯上 OutputStream的子類FileOutputStream * InputStream的子類FileInputStream Scanner是PrintWriter的子類 */ private String str;// 存儲用戶從控制檯輸入的數據 void sys_input() {// 從控制檯讀取一句話寫入文件中 Scanner scanner = new Scanner(System.in);// 獲取用戶的輸入類 System.out.println("請輸入存到D盤output文件中的字符串"); if (scanner.hasNextLine())// hasNext()檢測是否有數據,遇到enter鍵結束返回 str = scanner.nextLine();// nextLine()會輸出空格 scanner.close(); } void output_file() {// 把讀到的話寫入到文件中,文件的位置:D盤的output文件夾下 OutputStream output; /* * File類裏面有兩個方法能夠實現: 一個是mkdir():建立此抽象路徑名指定的目錄。 另一個是 mkdirs(),mkdirs()能建立不存在的兩層文件夾,mkdir()一層 * 建立此抽象路徑名指定的目錄,包括全部必需但不存在的父目錄 */ // 建立文件夾對象 File file = new File("D:/C瓜哥");// 只能建立文件夾不能寫文件名 if (!file.exists()) {// 判斷文件是否存在 file.mkdir();// 正式建立了一個文件夾 } try { output = new FileOutputStream(file + "/girl.txt");// 建立一個輸出字節流的對象,也能夠直接包括建立文件夾new // FileOutputStream("D:/output.txt"); byte b[] = str.getBytes();// 字符串轉化爲字節類型存儲到字節數組中 try { output.write("".getBytes());// 清空文件裏面原來的內容 output.write(b);// 往文件中以字節的方式寫入字符串 output.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } void read_sys() {// 將D盤文件下output的內容讀出到控制檯上 try { InputStream input = new FileInputStream("D:/C瓜哥/girl.txt"); try { int size = input.available();// 求input一次性能讀出多少個字節 byte b[] = new byte[size]; input.read(b);// read(byte[])讀取字節序列,放到字節數組b裏,由於漢字是3個字節或者2個字節都有可能,轉化爲char會亂碼, System.out.println(b); System.out.println((char) input.read(b)); System.out.print(new String(b));// 容易出現亂碼,尤爲是中文都亂碼,因此通常引入字符流,InputStreamReader input.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } void read_file() {// 將文件的內容讀出到另外一個文件中 // 源文件地址:D:/output.txt // 讀出到的文件地址:E:/guagua/girl.txt // 先讀出來 InputStream input_file; try { input_file = new FileInputStream("D:\\C瓜哥\\girl.txt");// 兩道槓,第一道槓是轉義字符 try { int size = input_file.available(); byte[] b = new byte[size]; input_file.read(b); // 再寫進另個文件裏 File file = new File("E:\\guagua"); if (!file.exists()) file.mkdirs(); OutputStream out_file = new FileOutputStream(file + "\\girls.txt"); out_file.write(b); input_file.close(); out_file.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { zijie_in_output zz = new zijie_in_output(); zz.sys_input(); zz.output_file(); zz.read_sys(); zz.read_file(); } }
public class zifu_in_output { /** * 字符流的方法輸入輸出文件到控制檯或者另外一個文件上 */ protected void readFileToSys() {// 讀取文件輸出到控制檯 String q = ""; try { FileReader fr = new FileReader("D:\\龍炎\\大狗.txt");// 建立一個fileReader對象 BufferedReader buff = new BufferedReader(fr);// BufferedReader字符流緩衝對象效率高 String t = null; try { while ((t = buff.readLine()) != null) // 讀取以換行符結尾的一行,字符流結尾是null q = q.concat(t);// concat結果是返回值纔是鏈接值,q和t的值沒變 System.out.println(q); buff.close(); fr.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } protected void readFileToFile() {// 讀取文件輸出到另外一個文件 /** * 目標文件:E:/花花/豬豬.txt */ // 先讀取 String ss = ""; String str = null; try { FileReader file = new FileReader("D:\\龍炎\\大狗.txt"); BufferedReader br = new BufferedReader(file); try { while ((str = br.readLine()) != null) // 讀取一行,末尾是null ss = ss.concat(str); // 寫進文件裏 File f = new File("e:\\花花"); if (!f.exists()) f.mkdirs(); FileWriter fw = new FileWriter(f + "\\豬豬.txt", true);// 是不是追加的形式? fw.write(ss);// 寫進文件裏 fw.close(); br.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } void ReadSysToFile() {// 讀取控制檯的寫進文件裏面 String str = null; Scanner scanner = new Scanner(System.in); System.out.println("輸入存到D:\\龍炎\\大狗的數據"); if (scanner.hasNextLine()) str = scanner.nextLine(); System.out.println(str);// 輸出到控制檯 scanner.close(); // 寫進文件裏 try { File file = new File("d:\\龍炎"); if (!file.exists()) file.mkdirs(); FileWriter fw = new FileWriter(file + "\\大狗.txt", false);// 容易出錯,若是是有文件夾的都出錯,要新建文件夾 fw.write(str); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { zifu_in_output zz = new zifu_in_output(); zz.ReadSysToFile(); zz.readFileToSys(); zz.readFileToFile(); } }