import?java.io.BufferedReader;
我們提供的服務有:網站建設、網站設計、微信公眾號開發(fā)、網站優(yōu)化、網站認證、崇州ssl等。為成百上千家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的崇州網站制作公司
import?java.io.IOException;
import?java.io.InputStreamReader;
/*
*?System.in?標準輸入流。是從鍵盤獲取數據的
*?
*?鍵盤錄入數據:
*? A:main方法的args接收參數。
*? java?HelloWorld?hello?world?java
*? B:Scanner(JDK5以后的)
*? Scanner?sc?=?new?Scanner(System.in);
*? String?s?=?sc.nextLine();
*? int?x?=?sc.nextInt()
*? C:通過字符緩沖流包裝標準輸入流實現
*? BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));
*/
public?class?SystemInDemo?{
public?static?void?main(String[]?args)?throws?IOException?{
//?//獲取標準輸入流
//?InputStream?is?=?System.in;
//?//我要一次獲取一行行不行呢?
//?//行。
//?//怎么實現呢?
//?//要想實現,首先你得知道一次讀取一行數據的方法是哪個呢?
//?//readLine()
//?//而這個方法在哪個類中呢?
//?//BufferedReader
//?//所以,你這次應該創(chuàng)建BufferedReader的對象,但是底層還是的使用標準輸入流
//?//?BufferedReader?br?=?new?BufferedReader(is);
//?//按照我們的推想,現在應該可以了,但是卻報錯了
//?//原因是:字符緩沖流只能針對字符流操作,而你現在是字節(jié)流,所以不能是用?
//?//那么,我還就想使用了,請大家給我一個解決方案?
//?//把字節(jié)流轉換為字符流,然后在通過字符緩沖流操作
//?InputStreamReader?isr?=?new?InputStreamReader(is);
//?BufferedReader?br=?new?BufferedReader(isr);
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));
System.out.println("請輸入一個字符串:");
String?line?=?br.readLine();
System.out.println("你輸入的字符串是:"?+?line);
System.out.println("請輸入一個整數:");
//?int?i?=?Integer.parseInt(br.readLine());
line?=?br.readLine();
int?i?=?Integer.parseInt(line);
System.out.println("你輸入的整數是:"?+?i);
}
}
接收端(服務端)中的socket要實時處于監(jiān)聽狀態(tài),即要設置一個死循環(huán)。
例如:
while(1){
//.....
}
當接收到一個客戶端的消息,再為其開辟新的進程進行數據處理。
我也只是說個大概,具體建議網絡上百度一下socket通信方法,看看人家服務器端是怎么寫的。
android客戶端代碼:
public class MainActivity extends Activity
{
private TextView uploadInfo;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
uploadInfo = (TextView) findViewById(R.id.upload_info);
uploadFile();
}
public void uploadFile()
{
//服務器端地址
String url = "";
//手機端要上傳的文件,首先要保存你手機上存在該文件
String filePath = Environment.getExternalStorageDirectory()
+ "/1/power.apk";
AsyncHttpClient httpClient = new AsyncHttpClient();
RequestParams param = new RequestParams();
try
{
param.put("file", new File(filePath));
param.put("content", "liucanwen");
httpClient.post(url, param, new AsyncHttpResponseHandler()
{
@Override
public void onStart()
{
super.onStart();
uploadInfo.setText("正在上傳...");
}
@Override
public void onSuccess(String arg0)
{
super.onSuccess(arg0);
Log.i("ck", "success" + arg0);
if(arg0.equals("success"))
{
Toast.makeText(MainActivity.this, "上傳成功!", 1000).show();
}
uploadInfo.setText(arg0);
}
@Override
public void onFailure(Throwable arg0, String arg1)
{
super.onFailure(arg0, arg1);
uploadInfo.setText("上傳失??!");
}
});
} catch (FileNotFoundException e)
{
e.printStackTrace();
Toast.makeText(MainActivity.this, "上傳文件不存在!", 1000).show();
}
}
}
服務器端代碼:
public class UploadFileServlet extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// 創(chuàng)建文件項目工廠對象
DiskFileItemFactory factory = new DiskFileItemFactory();
// 設置文件上傳路徑
String upload = this.getServletContext().getRealPath("/upload/");
// 獲取系統默認的臨時文件保存路徑,該路徑為Tomcat根目錄下的temp文件夾
String temp = System.getProperty("java.io.tmpdir");
// 設置緩沖區(qū)大小為 5M
factory.setSizeThreshold(1024 * 1024 * 5);
// 設置臨時文件夾為temp
factory.setRepository(new File(temp));
// 用工廠實例化上傳組件,ServletFileUpload 用來解析文件上傳請求
ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
// 解析結果放在List中
try
{
ListFileItem list = servletFileUpload.parseRequest(request);
for (FileItem item : list)
{
String name = item.getFieldName();
InputStream is = item.getInputStream();
if (name.contains("content"))
{
System.out.println(inputStream2String(is));
} else if(name.contains("file"))
{
try
{
inputStream2File(is, upload + "\\" + item.getName());
} catch (Exception e)
{
e.printStackTrace();
}
}
}
out.write("success");
} catch (FileUploadException e)
{
e.printStackTrace();
out.write("failure");
}
out.flush();
out.close();
}
// 流轉化成字符串
public static String inputStream2String(InputStream is) throws IOException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i = -1;
while ((i = is.read()) != -1)
{
baos.write(i);
}
return baos.toString();
}
// 流轉化成文件
public static void inputStream2File(InputStream is, String savePath)
throws Exception
{
System.out.println("文件保存路徑為:" + savePath);
File file = new File(savePath);
InputStream inputSteam = is;
BufferedInputStream fis = new BufferedInputStream(inputSteam);
FileOutputStream fos = new FileOutputStream(file);
int f;
while ((f = fis.read()) != -1)
{
fos.write(f);
}
fos.flush();
fos.close();
fis.close();
inputSteam.close();
}
}
寫一個servlet或jsp來接收,在servlet或jsp處理業(yè)務邏輯,后返回處理結果或新的數據
如jsp:
%@ page errorPage="/common/error/error.jsp" %
%@ page contentType="text/html;charset=GBK"%
%
String planeNumber = request.getParameter("planeNumber");
String planeType = com.aerolink.aocs.system.parameter.list.PlaneTypeFactory.getPlaneType(planeNumber);
response.getWriter().write(planeType);%
名稱欄目:java接收的代碼 java代碼詳解
文章源于:http://muchs.cn/article6/dospiog.html
成都網站建設公司_創(chuàng)新互聯,為您提供虛擬主機、建站公司、網站維護、網站內鏈、品牌網站設計、
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯