第一部分:文件操作
1、首先需要添加权限
2、获取内存卡状态并看是否可用:Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
3、获取目录 File sdfile = Environment.getExternalStorageDirectory();
4、然后文件的读写操作和普通的在Java中操作一样
第二部分:联网操作
1、联网无论是socket还是url都要把它放到子线程中去跑;
2、添加权限
3、根据网址,创建URL,然后开启连接,设置连接属性,连接,关闭连接。
下面以一个发送post请求为例贴个代码:
public staticString[] getAllDrugname() {
URL url;
HttpURLConnection connection;try{
url= new URL(IP + "Drug");//这里是网址
connection=(HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "*/*");
connection.setDoInput(true);
connection.setDoOutput(true);
PrintWriter writer= newPrintWriter(connection.getOutputStream());
writer.write("type=getAllDrugName");
writer.flush();
connection.connect();if (connection.getResponseCode() == 200) {
InputStreamReader in= newInputStreamReader(
connection.getInputStream(),"UTF-8");
StringBuilder str= newStringBuilder();intlen;char[] cbuf = new char[1024];while ((len = in.read(cbuf, 0, cbuf.length)) != -1) {
str.append(new String(cbuf, 0, len));
}return (str.toString()).split("[|]");
}
}catch(MalformedURLException e) {return new String[] { "Error:" +e.getMessage() };
}catch(IOException e) {return new String[] { "Error" +e.getMessage() };
}return null;
}
第三部分:服务器的创建:
1、创建dynamic web project,并为之选定服务器,我用的是tomcat,数据库用的是mysql;
2、复制两个jar包到【工程目录】\\webcontent\\web-inf\\lib下面,jar包分别是mysql-connector-java-5.1.7-bin.jar(用于数据库连接)和servlet-api.jar(服务器);
3、然后是写服务器:这里贴代码:
1 packageService;2
3 importjava.io.IOException;4 importjava.io.PrintWriter;5 importjava.util.LinkedList;6
7 importjavax.servlet.ServletException;8 importjavax.servlet.http.HttpServlet;9 importjavax.servlet.http.HttpServletRequest;10 importjavax.servlet.http.HttpServletResponse;11
12 importFileOperation.SaveAndReadImage;13 importMySql.MySqlHelper;14
15 public class DrugService extendsHttpServlet {16 @Override17 public voiddoGet(HttpServletRequest request, HttpServletResponse response)18 throwsServletException, IOException {19 response.setContentType("text/html;charset=UTF-8");20 PrintWriter writer =response.getWriter();21 String str = request.getParameter("type");22 System.out.println("type=" +str);23 switch(str) {24 case "getDrugMessageByName":25 String name = request.getParameter("name");26 name = new String(name.getBytes("ISO-8859-1"), "UTF-8");27 String context =getDrugMessageByName(name);28 writer.write(context);29 System.out.println("getDrugMessageByName completed");30 break;31 case "getAllDrugName":32 LinkedList names =getAllDrugName();33 StringBuffer resultName = newStringBuffer();34 boolean first = true;35 for(String ele : names) {36 if(first) {37 resultName.append(ele);38 first = false;39 } else{40 resultName.append("|" +ele);41 }42 }43 writer.write(resultName.toString());44 System.out.println("getAllDrugNames completed");45 break;60 default:61 writer.write("没有找到合适的匹配");62 }63 writer.flush();64 writer.close();65 System.out.println("exitService");66 }67 @Override68 public voiddoPost(HttpServletRequest req, HttpServletResponse resp)69 throwsServletException, IOException {70 doGet(req, resp);71 }86 }
4、部署服务器:这一步很关键,决定了我们的服务器是否可以被正常访问到。新建文件:[工程目录]\WebContent\WEB-INF\web.xml,内容:
1 <?xml version="1.0" encoding="UTF-8"?>
2
3
4 DrugService 这里是给我们的服务器起个名字,任意取
5 Service.DrugService这里要指明我们的class
6
7
8 DrugService这个名字一定要和上面的名字一样
9 /Drug这个是url后面要加的东西
10
19
第四部分:数据库操作:
数据库操作主要是个流程,经清楚流程其他没什么,这里就直接贴代码了;
1 packageMySql;2
3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.ResultSet;6 importjava.sql.SQLException;7 importjava.util.LinkedList;8
9 public classMySqlHelper {10 private staticConnection connection;11 private staticjava.sql.Statement statement;12 static{13 try{14 Class.forName("com.mysql.jdbc.Driver");//加载驱动15 } catch(ClassNotFoundException e) {16 e.printStackTrace();17 }18 Connection connection = null;19 try{20 connection =DriverManager.getConnection(21 "jdbc:mysql://[IP]:[port]/[database]", "[name]", "[password]");//建立连接,port一般为330622 statement=connection.createStatement();23 } catch(SQLException e) {24 e.printStackTrace();25 }26 }//-----------以下为一些数据库的增删查改等操作--------------------27 public static String[] getDrug(intid){28 StringBuffer sql=new StringBuffer("select `name`,`context` "
29 + "from drug where `id`=");30 sql.append("'"+id+"'");31 ResultSet resultSet=null;32 try{33 resultSet =statement.executeQuery(sql.toString());34 } catch(SQLException e) {35 e.printStackTrace();36 }37 try{38 int count=resultSet.getMetaData().getColumnCount();39 System.out.println(count);40 while(resultSet.next()){41 return new String[]{resultSet.getString(1),resultSet.getString(2)};42 }43 } catch(SQLException e) {44 e.printStackTrace();45 }46 return null;47 }57 public static LinkedListgetAllDrugName(){58 LinkedList names=new LinkedList();59 String sql=new String("select `name` from `drug`");60 ResultSet result=null;61 try{62 result =statement.executeQuery(sql);63 } catch(SQLException e) {64 e.printStackTrace();65 }66 try{67 while(result.next()){68 names.add(result.getString(1).trim());69 }70 } catch(SQLException e) {71 e.printStackTrace();72 }73 returnnames;74 }75 public staticString getDrugMessageByName(String name){76 String sql=new String("select `context` from `drug` "
77 + "where `name` like '%"+name+"%'");78 ResultSet result=null;79 try{80 result =statement.executeQuery(sql);81 } catch(SQLException e) {82 e.printStackTrace();83 }84 try{85 if(result.next())86 return result.getString(1);87 } catch(SQLException e) {88 e.printStackTrace();89 }90 return null;91 }92 }