0: 输入流
InputStream->HttpURLConnection.getInputStream
->getResource().openRawResource(R.raw.a);->xmlPullParser.setInput(inputStream, "utf-8");
->xmlReader.parse(new InputSource(getResources().openRawResource(R.raw.worker)));
FileInputStream相对与InputStream 这个构造方法里面可以放地址
BufferedInputStream 里面的参数是InputStream,其实就是InputStream的缓存流,因为FileInputStream 集成了InputStream ,所以也可以放FileInputStream
-----------------------------------------------------------------------
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(getCacheDir().getPath()+"/print.txt")));
1:输出流
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OutputStream->HttpURLConnection.getOutputStream
FileOutputStream相对于OutputStream 这个构造方法啊里面可以放地址:FileOutputStream fos = new FileOutputStream(getCacheDir().getPath()+"/1.bmp");
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(getCacheDir().getPath()+"/3.bmp"));
-----------------------------------------------------------------------
PrintStream ps = new PrintStream(getCacheDir().getPath()+"/print.txt");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
BufferedWriter bw = new BufferedWriter(new FileWriter(recordFile));
PrintWriter pw = new PrintWriter(new FileWriter("qq.txt"),true);->服务器端的PrintWriter,直接就是文本,所以用字符输出流
+++++++++++++++++++++++++++++++++++++++++++++++++
0: 输入流
InputStream->HttpURLConnection.getInputStream
->getResource().openRawResource(R.raw.a);->xmlPullParser.setInput(inputStream, "utf-8");
->xmlReader.parse(new InputSource(getResources().openRawResource(R.raw.worker)));
InputStream in</span> = null;
FileOutputStream fos = null;
if (httpURLConnection.getResponseCode() == 200) {
in = httpURLConnection.getInputStream();
fos = new FileOutputStream(getCacheDir().getPath()+"a.bmp");
byte[] arr = new byte[1024];
int len = 0;
//每次读取 1024个字节,如果读取返回为-1说明到了文件的末尾,结束读取
while ((len = in.read(arr)) != -1) {
fos.write(arr, 0, len);
}
//一定要记住要关闭读取流。
in.close();
fos.close();
}
//XmlPullParser的工厂类
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
//xmlPullParser.setInput的第一个参数就是 InputStream,
//这里是将xml 文件放在了raw文件夹里面,然后通过getResources().openRawResource(R.raw.worker)来获取
InputStream inputStream = getResources().openRawResource(R.raw.worker);
//开始读取文件,并设置编码类型为utf-8
xmlPullParser.setInput(inputStream, "utf-8");
//获取event的类型,然后循环直至END_DOCUMENT,循环的增加条件一定不能忘记eventType=xmlPullParser.next();
int eventType = xmlPullParser.getEventType();
//SAX 的工厂类
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
SAXParser saxParser = saxParserFactory.newSAXParser();
// 通过parser得到XMLReader对象
XMLReader xmlReader = saxParser.getXMLReader();
//创建MyHandler的实例
MyHandler saxHandler = new MyHandler();
//将saxHanlder 放入xmlReader中。
xmlReader.setContentHandler(saxHandler);
xmlReader.parse(new InputSource(getResources().openRawResource(R.raw.worker)));
//此时通过MyHandler 里面的方法来获取List<Worker>
saxList = saxHandler.getmList();
FileInputStream相对与InputStream 这个构造方法里面可以放地址
BufferedInputStream 里面的参数是InputStream,其实就是InputStream的缓存流,因为FileInputStream 集成了InputStream ,所以也可以放FileInputStream
//实例3 使用字节流的缓冲区复制一张图片
public void example3CopyImage() throws IOException{
BufferedInputStream bis =
new BufferedInputStream(getResources().openRawResource(R.raw.a));
BufferedOutputStream bos =
new BufferedOutputStream(new FileOutputStream(getCacheDir().getPath()+"/3.bmp"));
byte[] arr = new byte[1024];
int len=0;
while ((len=bis.read(arr))!=-1){
bos.write(arr,0,len);
}
bis.close();
bos.close();
}
-----------------------------------------------------------------------
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(getCacheDir().getPath()+"/print.txt")));
//实例9,字符输出流
public void example9PrintWriter() throws IOException{
Log.d("kodulf", "实例9++++++++开始+++++++++++++");
/*
PrintWriter:字符输出流,字符输出流的基本功能都具备了,增加了打印功能
可以操作的目的:
File类型的文件
字符串类型的文件
字节输出流
字符数出流
*/
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(getCacheDir().getPath()+"/print.txt")));
//PrintWriter pw = new PrintWriter(System.out,true);//自动刷新
PrintWriter pw = new PrintWriter(new FileWriter("qq.txt"),true);//自动刷新
String line = null;
while((line = br.readLine())!=null)
{
if("over".equals(line))
break;
pw.println(line);
//pw.write(line);
//pw.write("\r\n");
//pw.flush();
}
br.close();
pw.close();
Log.d("kodulf", "实例9++++++++结束+++++++++++++");
}
1:输出流
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++OutputStream->HttpURLConnection.getOutputStream
url = new URL("http://192.168.1.106:8080/ServerDemo/servlet/LoginServlert");
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setConnectTimeout(5000);
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);//设置可以向服务器传递数据
//设置提交的内容的类型
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//设置提交的内容的长度
byte[] data = sb.toString().getBytes("utf-8");//注意这里的编码utf-8
urlConnection.setRequestProperty("Content-Length", String.valueOf(data.length));
//提交数据
OutputStream outputStream = urlConnection.getOutputStream();
outputStream.write(data);
outputStream.close();
FileOutputStream相对于OutputStream 这个构造方法啊里面可以放地址:FileOutputStream fos = new FileOutputStream(getCacheDir().getPath()+"/1.bmp");
1.1 需要存储的我们使用FileOutputStream 将它写入到文件中
InputStream in = null;
FileOutputStream fos = null;
if (httpURLConnection.getResponseCode() == 200) {
in = httpURLConnection.getInputStream();
fos = new FileOutputStream(getCacheDir().getPath()+"a.bmp");
byte[] arr = new byte[1024];
int len = 0;
//每次读取 1024个字节,如果读取返回为-1说明到了文件的末尾,结束读取
while ((len = in.read(arr)) != -1) {
fos.write(arr, 0, len);
}
//一定要记住要关闭读取流。
in.close();
fos.close();
}
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(getCacheDir().getPath()+"/3.bmp"));
//实例3 使用字节流的缓冲区复制一张图片
public void example3CopyImage() throws IOException{
BufferedInputStream bis =
new BufferedInputStream(getResources().openRawResource(R.raw.a));
BufferedOutputStream bos =
new BufferedOutputStream(new FileOutputStream(getCacheDir().getPath()+"/3.bmp"));
byte[] arr = new byte[1024];
int len=0;
while ((len=bis.read(arr))!=-1){
bos.write(arr,0,len);
}
bis.close();
bos.close();
}
-----------------------------------------------------------------------
PrintStream ps = new PrintStream(getCacheDir().getPath()+"/print.txt");
//实例8 打印流,字节输出流
public void example8PrintStream() throws IOException{
Log.d("kodulf", "实例8++++++++开始+++++++++++++");
/*打印流:
PrintStream:字节输出流,字节输出流的基本功能都具备了,又增加了打印功能
可以操作的目的:
File类型的文件
字符串类型的文件
字节输出流
*/
PrintStream ps = new PrintStream(getCacheDir().getPath()+"/print.txt");
//ps.write(97);// 00000000 00000000 00000000 01100001---->自动砍掉了前三个字节--->01100001
//ps.write(353);// 00000000 00000000 00000001 01100001---->自动砍掉了前三个字节--->01100001
//System.out.println(353);
//ps.println(353);//按照数据原样儿写入到目的,也就是数据的表现形式,内部用了 String.valueOf()
ps.write(String.valueOf(353).getBytes());
ps.close();
Log.d("kodulf", "实例8++++++++结束+++++++++++++");
}
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//判断服务器端的响应码是不是200
InputStream in = null;
if(urlConnection.getResponseCode()==200){
in = urlConnection.getInputStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] arr = new byte[1024];
int len=0;
while((len=in.read(arr))!=-1){
bos.write(arr,0,len);
}
byte[] b = bos.toByteArray();
String ss = new String(b,"utf-8");
Log.d("kodulf",ss);
}
//关闭流
in.close();
BufferedWriter bw = new BufferedWriter(new FileWriter(recordFile));
//实例7 得到指定目录下的所有的目录包括子目录下的,存到集合中,然后存到cache/record.text 文件中
//1:得到指定目录下的所有的Java文件包括子目录下的,存到集合中
//2:遍历集合,把集合中每个File对象写入到文件中
public void example7ListDirectorys() throws IOException{
Log.d("kodulf", "实例7++++++++开始+++++++++++++");
List<File> directorys = new ArrayList<File>();
File externalStorageDirectory = Environment.getExternalStorageDirectory();
listDirectorys(externalStorageDirectory, directorys);
File recordFile = new File(getCacheDir(),"record.text");
BufferedWriter bw = new BufferedWriter(new FileWriter(recordFile));
for (File file:directorys){
bw.write(file.getName());
bw.newLine();
bw.flush();
}
bw.close();
Log.d("kodulf", "实例7++++++++结束+++++++++++++");
}
PrintWriter pw = new PrintWriter(new FileWriter("qq.txt"),true);->服务器端的PrintWriter,直接就是文本,所以用字符输出流
//实例9,字符输出流
public void example9PrintWriter() throws IOException{
Log.d("kodulf", "实例9++++++++开始+++++++++++++");
/*
PrintWriter:字符输出流,字符输出流的基本功能都具备了,增加了打印功能
可以操作的目的:
File类型的文件
字符串类型的文件
字节输出流
字符数出流
*/
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(getCacheDir().getPath()+"/print.txt")));
//PrintWriter pw = new PrintWriter(System.out,true);//自动刷新
PrintWriter pw = new PrintWriter(new FileWriter("qq.txt"),true);//自动刷新
String line = null;
while((line = br.readLine())!=null)
{
if("over".equals(line))
break;
pw.println(line);
//pw.write(line);
//pw.write("\r\n");
//pw.flush();
}
br.close();
pw.close();
Log.d("kodulf", "实例9++++++++结束+++++++++++++");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("utf-8");//请求方式是 post
//先得到客户端提交的用户名和密码
//因为客户端信息被封装在 request对象中,所以需要从request对象中获取用户名密码
String uname = request.getParameter("username");//?username= &psw=
//String uname = fun(name);
String psw = request.getParameter("password");
//验证
if(uname!=null&&uname.trim()!=""&&psw!=null&&psw.trim()!="")
{
if("哈哈".equals(uname) && "123".equals(psw))
{
out.println("登陆成功");
}
else
out.println("登陆失败");
}else{
out.println("参数有问题");
}
out.flush();
out.close();
/**
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
*/
}