文件读取(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不能同时调用*/
	
	}

}

 

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