文件讀取(javaWeb-IO)

文件讀取(javaWeb-IO)

讀取文件步驟:

1.獲取文件的絕對路徑(getRealPath())

2.加載文件

3.讀取一個字符

4.讀取多個字符

5.讀取文件所有內容

package com.helong.stream;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.plaf.synth.SynthStyle;


@WebServlet("/StreamSevlet")
public class StreamSevlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//加載一個文件
		//一定使用絕對路徑
		//在讀取WebContent目錄下的文件的時候可以直接使用文件名進行讀取,其他目錄之下的文件必須要使用相對路徑的方式進行讀取
		String path = this.getServletContext().getRealPath("a.txt");
		/*System.out.println(path);*/
		//加載文件  二進制流  字節碼
		FileInputStream in = new FileInputStream(path);
		/*System.out.println(in);*/
		
		//獲取字節碼
		//讀取一個字符 
		//System.out.println(in.read());
		//System.out.println(in.read());
		//System.out.println(in.read());
		//System.out.println(in.read());
		//System.out.println(in.read());
		//當文件讀取完畢時, 就會返回一個-1
		//System.out.println(in.read());
		
		
		//當前讀取了幾個字符  如果讀了最後 ,一個都沒有讀取 ,就會返回一個-1
		/*
		 * 
		byte[] buffer = new byte[5];		
		System.out.println(Arrays.toString(buffer));
		
		int len = in.read(buffer);
		System.out.println(len);
		System.out.println(Arrays.toString(buffer));
		
		len = in.read(buffer);
		System.out.println(len);
		System.out.println(Arrays.toString(buffer));
		
		
		len = in.read(buffer);
		System.out.println(len);
		System.out.println(Arrays.toString(buffer));
		
		len = in.read(buffer);
		System.out.println(len);
		System.out.println(Arrays.toString(buffer));
		
		len = in.read(buffer);
		System.out.println(len);
		System.out.println(Arrays.toString(buffer));*/
		
		
		byte[] buffer = new byte[1024];		
		/*System.out.println(Arrays.toString(buffer));*/
		
		int len = 0;
		while((len = in.read(buffer)) != -1) {
			/*輸出讀取字符的長度*/
			System.out.println(len);
			/*將讀取的字符數組(ASCII碼)以字符數組的形式輸出*/
			System.out.println(Arrays.toString(buffer));
			/*將讀取的內容以字符串的形形式輸出*/
			System.out.println(new String(buffer,0,len));
		}
		//關閉文件
		in.close();
		
		
		/*write();一次寫一個字符
		 * write(buffer) 一次寫多個字符
		 * write(buffer,o,len) 一次寫指定個數的字符
		 * */
		
		
		/*response使用注意點:getWrite()和getOutPutStream不能同時調用*/
	
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章