备注:以下文件是win socket 协议写的,如果报编码格式有误,那就是换行和空格有问题,需要你手动一行一行的换行和加空格
一、文件的写
#include "lrs.h" void saveUser(char *filename,char *name,char *passwd) //自定义函数 { long file; //获取文件描述符 char usrname[100]; //这是在栈中定义一个数组空间,用来存放字符串常量。 file=fopen(filename,"a+");//以写的方式打开文件 snprintf(usrname,"%s",name); //将一个指针变量存入字符缓冲区。为什么需要有这一步操作 /* 注意:*y和y[]的区别 char *y="ad";定义的y是一个指针,指向"ad",此处的"ad"是一个常量字符串,放在内存数据区,所以是不可更改的 char y[]="ad"; 是在内存栈空间数组里,函数名y是栈空间的首地址。所以栈是可以更改值的。 */ strcat(usrname,","); strcat(usrname,passwd); strcat(usrname,"\n"); fprintf(file,usrname); fclose(file); } Action() { char * filename="F:\\test.txt"; //使用\\是为了保证\的原型意义,而不被转义 char * passwd="haha";
//第一种定义:name的方法
//char *name="wang";//将name定义为字符常量,这种定义将使name变成一个死值。
//第二种定义:name的方法
char name1[10];//将name1定义栈数组空间
sprintf(name1,"%s",lr_eval_string("wang<NewParam>")); //往name1数组空间中存入可变的字符串。
saveUser(filename,name,passwd);
return 0;
}
二、读取文件中的数据
#include "lrs.h" void readUser(char *filename){ char buffer[50]; char data[200]; long file; //获取文件描述符 file=fopen(filename,"rb"); while(!feof(file)){ fgets(buffer,20,file);//每次从文件中读取20个字符,放入缓冲区中 strcat(data,buffer);//将缓冲区的数据一次添加到data中,从而得到文件中所有的内容 if(ferror(file)){ break; } } lr_output_message ("%s",data); fclose(file); } Action() { char * filename="F:\\test.txt"; //使用\\是为了保证\的原型意义,而不被转义 char name[10]; char * passwd="haha"; sprintf(name,"%s",lr_eval_string("wang<NewParam>")); readUser(filename); return 0; }
三、上传文件
Boolean to=null; String result=null; CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://dev-voteproject.zhph.lan/syzxEnterInfo/upload");//建立HttpPost对象,改成自己的地址 File file = new File("C:\\Users\\Administrator\\Desktop\\toupiaoxitong\\toupiaoxitong.jpg");//相对路径使用不了的话,使用图片绝对路径 if(!file.exists()){//判断文件是否存在 lr.error_message("文件不存在"); return 0; } FileBody bin = new FileBody(file, ContentType.create("image/png",Consts.UTF_8));//创建图片提交主体信息 HttpEntity entity = MultipartEntityBuilder .create() .setCharset(Charset.forName("utf-8")) .addPart("photo", bin)//添加到请求 .addTextBody("wechatId","xing<NewParam_2><NewParam_1>") .build(); lr.think_time(3); lr.start_transaction("上传图片"); httpPost.setEntity(entity); HttpResponse response= null;//发送Post,并返回一个HttpResponse对象 try { response = httpClient.execute(httpPost); if(response.getStatusLine().getStatusCode()==200) {//如果状态码为200,就是正常返回 result = EntityUtils.toString(response.getEntity()); System.out.println(result); JSONObject jsStr = new JSONObject(result); to=jsStr.getBoolean("success"); } } catch (IOException e) { lr.end_transaction("上传图片", lr.FAIL); e.printStackTrace(); } System.out.print("结束"); System.out.println("totototototo"+to); if(to){ lr.end_transaction("上传图片", lr.PASS); }else{ lr.end_transaction("上传图片", lr.FAIL); lr.error_message("上传图片失败:"+result); }
四、下载文件
String result=null; HashMap<String, String> map2=new HashMap<String, String>(); if(!("".equals(token))||token==null){ map2.put("token",token); } POST p2=new POST(); // 注意此处引入了,自己写的testhttp.jar包 System.out.println(token); result=p2.post("http://47.106.145.191:8081/excelHelpper/downloadMyCaseExcel",map2,""); if(result.length()>100){//其实就是直接发送了post请求后,返回的文件流,直接就判断读取到的文件流有多大,文件流直接就给丢弃掉,不做文件保存 }else{ System.out.println(result); } return 0;