java輸入輸出讀取文件

   寫了讀取文件寫文件的小例子,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();
	}
}
相關文章
相關標籤/搜索