写入文件然后读取,然后再像一个字符串一样保存内容

我想写进一个文件,然后,我想把内容保存在一个 StringBuffer 里面。最后再通过一个 TextView显示,但是什么也不显示。

public class MainActivity extends Activity {
String finall;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String FILENAME = "hello_file";
    String string = "hello world!";
    FileOutputStream fos;
    try
    {
        fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
        fos.write(string.getBytes());
        fos.close();
    } 
    catch (FileNotFoundException e) { e.printStackTrace(); } 
    catch (IOException e) { e.printStackTrace(); }



    FileInputStream in = null;
    try
    {
        in = openFileInput("hello_file.txt");
        StringBuffer fileContent = new StringBuffer("");

        byte[] buffer = new byte[1024];

        while(in.read(buffer) != -1)
        {
            fileContent.append(new String(buffer));
        }
        finall = fileContent.toString();
    }
    catch (FileNotFoundException e) { e.printStackTrace(); } 
    catch (IOException e) { e.printStackTrace(); }

    TextView text = (TextView)findViewById(R.id.mehmet);
    text.setText(finall);
}
}

1个回答

读写文件的路径改为SD卡中,并加上写SD卡权限试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Qt从数据库读取数据写入文件时内存溢出
我将400万行字符串(每行大概33byte)插入了数据库及中,当我再从数据库中把这些数据写入文件时,程序崩溃了,提示内存溢出 ``` **In file ..\..\include/QtCore/../../src/corelib/tools/qvector.h, line 508: Out of memory** ``` 以下是写入文件的代码: ``` if (!m_database->m_db.open()) //m_db是数据库名 return; m_database->m_db.transaction(); QSqlQuery query(m_database->m_db); bool ret = query.exec("select * from validation order by VALIDATION asc"); //这是按照字段VALIDATION来升序排序表中数据后取所有数据,不知道这样好不好,还是说该按照一行一行的来取 if (!ret) { qDebug() << query.lastError().driverText() << endl; return; } unsigned int line = 0; while (query.next()) { QString content = QString("%1\n").arg(query.value(0).toString()); valfile.write(content.toLatin1()); //valfile是QFile类型,要写入的文件 line++; if (line >= 1000){ line = 0; valfile.flush(); //flush在这里不知道用的对不对 qDebug() << "size of file after flush: " << valfile.size() << endl; } } m_database->m_db.commit(); ``` 在以上代码中,我想,因为数据量太大,那么每次写到文件中1000行,我就flush刷新一下缓冲区,把数据都存入文件,这样缓冲区就空了,就可以继续写。然而我一直盯着任务管理器看,程序在写入文件时内存占用一直在上升,知道程序崩溃,提示内存溢出。 难道是我对缓冲区和flush有什么误解吗??? 求教各位大牛,多谢多谢!!!
以16进制保存到文件中,从文件中读取时每一位都会变成一个字符
如题,在C语言代码主以16进制写入文件, ``` printf(fp, "%02X", str); ``` 再次从文件中读取时会变成每一位都会变成一个字符。以下是命令行输出 ``` 59AF90EA3B50C2BAB034063CA0ECD210FED858DA57D7C4E6F6D12A32D1D90994 the key from file is : 59AF90EA3B50C2BAB034063CA0ECD210FED858DA57D7C4E6F6D12A32D1D90994 key length from file is 64, correct key length is 32 ``` 遇到这种情况应该怎么办?怎么把从文件读取的字符串每两位转成一个16进制?
base64字符串转成File且不写入磁盘
问题描述: 第三方系统传入图片base64的字符串到本系统,我们需要将该图片上传到 另一个dubbo接口中,该dubbo接口接收图片参数为java.io.File类型,目 前本系统是将图片base64的字符串解码byte[]后,写入本地,再用File对象 读取该路径下的文件后上传dubbo接口,再删除生成的文件。流程较为复杂, 有没有直接将base64字符串直接转成File对象的呢,本地就不用生成了。 ``` public static boolean GenerateImage(String imgStr,String fileName) {//对字节数组字符串进行Base64解码并生成图片 if (imgStr == null) //图像数据为空 return false; try { //Base64解码 byte[] b = Base64.decodeBase64(new String(imgStr).getBytes()); for(int i=0;i<b.length;++i) { if(b[i]<0) {//调整异常数据 b[i]+=256; } } //生成jpeg图片 String imgFilePath = fileName;//新生成的图片 OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { logger.debug("生成图片失败:"+e); return false; } } } ```
c++读取excel表格并将内容写入xml的几个问题
目前已经用mfc实现从excel中顺序读取内容,并按一定格式写入xml文档的小工具,但还有几个问题,希望有懂得人能来解答一下。1.最终生成的xml文档有语句声明是按GBK格式编码的,那么我的项目基于unicode编码或是多字节编码会对结果有影响吗(主要是担心将字符串写入xml的时候会受字符集影响)。2.若是excel单元格首字符为单引号’,会读取不到这个单引号,这个单引号的作用应该是将单元格设为文本格式,怎么解决呢?3.从excel单元格读取到的内容,我是先存储到_variant_t类型的变量中,再转换格式为CString字符串,最后转为string字符串,然后用fstream文件输出流写到xml文档中,有没有办法可以直接从excel中读取出CString类型的字符串呢?谢谢回答!
python如何修改代码,使数据按列写入excel内?
![图片说明](https://img-ask.csdn.net/upload/202002/16/1581860871_193142.png) **问题一:**找了挺多方法都没能顺利解决,目前觉得问题可能是在最后一个for循环。因为最后一个循环不是一行一行输出,而是排序后直接输出三行,所以使用 for i range()的办法也行不通。 <mark>截取最后一段代码 ``` for node_id in top_k: human_string = node_lookup.id_to_string(node_id) # 获取置信度 score = predictions[node_id] print('%s' % (human_string)) sheet.write(count,1,'%s\n' % (human_string)) ``` **问题二:**虽然图片我是按1.jpg、2.jpg、3.jpg....这样编码,但是有时候读取输出却不是按顺序输出的,而是乱的,比如2、3、1如下图。 ![图片说明](https://img-ask.csdn.net/upload/202002/16/1581863363_333569.png) **辛苦各位大佬啦!** **下面是完整代码** ``` import tensorflow as tf import os import xlwt import numpy as np import re from PIL import Image import matplotlib.pyplot as plt count=0 workbook = xlwt.Workbook() sheet = workbook.add_sheet("Sheet Name1") class NodeLookup(object): def __init__(self): label_lookup_path = 'inception_model/imagenet_2012_challenge_label_map_proto.pbtxt' uid_lookup_path = 'inception_model/imagenet_synset_to_human_label_map.txt' self.node_lookup = self.load(label_lookup_path, uid_lookup_path) def load(self, label_lookup_path, uid_lookup_path): # 通过tensorflow读文件方法把文件读入,加载分类字符转 'n*******' 对应各分类名称的文件 proto_as_ascii_lines = tf.gfile.GFile(uid_lookup_path).readlines() uid_to_human={} # 一行一行读取数据 for line in proto_as_ascii_lines: # 去掉换行符 line = line.strip('\n') # 按照 '\t' 分割 parsed_items = line.split('\t') uid = parsed_items[0] human_string = parsed_items[1] # 保存编号字符串与分类名称的关系 uid_to_human[uid] = human_string # 加载分类字符串n*******对应分类编号1-1000的文件 proto_as_ascii = tf.gfile.GFile(label_lookup_path).readlines() node_id_to_uid = {} for line in proto_as_ascii: if line.strip().startswith('target_class:'): target_class = int(line.strip().split(':')[1]) elif line.strip().startswith('target_class_'): target_class_string = line.strip().split(':')[1].strip() node_id_to_uid[target_class] = target_class_string[1:-1] # 建立分类编号 1-1000 与对应分类名称的映射关系 node_id_to_name = {} for key,val in node_id_to_uid.items(): name = uid_to_human[val] node_id_to_name[key] = name # 最后得到如 {449: 'tench, Tinca tinca', ...} return node_id_to_name # 传入分类编号1-1000 返回分类名称,因为 inception-v3 分类结果返回的是编号不是直接给名称 def id_to_string(self, node_id): if node_id not in self.node_lookup: return '' return self.node_lookup[node_id] # 创建一个图来存放google训练好的模型 with tf.gfile.FastGFile('inception_model/classify_image_graph_def.pb','rb') as f: graph_def = tf.GraphDef() graph_def.ParseFromString(f.read()) tf.import_graph_def(graph_def, name='') node_lookup = NodeLookup() with tf.Session() as sess: # 拿到softmax的op # 'softmax:0'这个名字,可以在网络中找到这个节点,它的名字就'(softmax)', softmax_tensor = sess.graph.get_tensor_by_name('softmax:0') for root,dirs,files in os.walk('images/'): ###把要测图片放入Images文件夹 for file in files: image_data = tf.gfile.FastGFile(os.path.join(root,file),'rb').read() # 运行softmax节点,向其中feed值 # 可以在网络中找到这个名字,DecodeJpeg/contents, # 据此可以发现,根据名字取网络中op时,如果其名字带括号,就用括号内的名字,如果不带括号,就用右上角介绍的名字。 # 而带个0,是默认情况,如果网络中出现同名节点,这个编号会递增 predictions = sess.run(softmax_tensor,{'DecodeJpeg/contents:0':image_data}) predictions = np.squeeze(predictions)# 把结果转化为1维数据 image_path = os.path.join(root, file) print(image_path) img = Image.open(image_path) sheet.write(count,0, image_path) # row, column, value # 排序,拿概率最大的3个值,然后再对这3个值倒序 top_k = predictions.argsort()[-3:][::-1] for node_id in top_k: human_string = node_lookup.id_to_string(node_id) # 获取置信度 score = predictions[node_id] print('%s' % (human_string)) sheet.write(count,1,'%s\n' % (human_string)) count=count+1 workbook.save('Excel_test1.xls') ```
C语言 结构体指针字符 二进制文件写入和读取 指针字符输出错误
typedef struct s{ char *name; }student; /*将结构体读出并显示*/ int IsUsed(char *str) { FILE *fp = fopen("test","rb"); student s; s.name = (char*) malloc(sizeof(char)*20); fread(&s,sizeof(student),1,fp); while(!feof(fp)){ printf("%s",s.name); //为什么这里出错?????????????????? if(strcmp(s.name,str)==0){ fclose(fp); return 1; //存在该字符串,则返回1 } fread(&s,sizeof(student),1,fp); } fclose(fp); return 0; //不存在该字符串,则返回0 } int main() { FILE *fp = fopen("test","rb+"); /*先将结构体P存入二进制文件中*/ student p; p.name = (char*) malloc(sizeof(char)*20); scanf("%s",p.name); while(IsUsed(p.name)){ //检查员工号是否唯一 printf("该字符串已经存在,请更换一个:"); scanf("%s",p.name); } fwrite(&p,sizeof(student),1,fp); } 在printf哪里显示程序停止工作!!!!!!!!!求解啊
C语言无法读取出指针数组里的字符串
![图片说明](https://img-ask.csdn.net/upload/201904/03/1554287909_964399.png) ``` ``` 这样的话,我可以正常地向pointer指针数组里写入字符串。 ![图片说明](https://img-ask.csdn.net/upload/201904/03/1554287972_101418.png) 但现在就无法把这个指针数组里地字符串写到文件里,我发现也无法正常的用printf输出到屏幕上 ```
(MFC,socket)C++从http响应中读取到文件字符数组,但无法写入到文件中,显示为0kb
resp_leng= recv(sock, (char*)&buffer, BUFFERSIZE, 0); npos=string(buffer).find("\r\n\r\n",0); if(resp_leng>0 ) { if ( npos >= resp_leng-1 && flag) { response+= string(buffer).substr(0,resp_leng); } else if( npos < resp_leng-1 && flag) { response+= string(buffer).substr(0,npos); of<<string(buffer).substr(npos+4,resp_leng-npos-4); flag = 0; } else { of<<string(buffer).substr(0,resp_leng); } } 注: HTTP响应 HTTP/1.1 200 OK Content-Type: text/plain Content-Length: 8 Accept-Ranges: bytes Server: HFS 2.3 beta Last-Modified: Thu, 31 Dec 2015 09:29:20 GMT Content-Disposition: filename="test.txt"; testtest 问题: 只是想把“testtest”保存到本地,但始终文件为0kb 而debug下str1 = string(buffer).substr(npos+4,resp_leng-npos-4);的结果的确为 “testtest”的字符串,而且将str1拷贝到str2,在保存,也会出现同样的问题; 目前怀疑是不是编码问题,但是服务器端的文件test.txt为ANSI编码呀
C# 按行读取txt文本内容导入数据库SQL(1)第二行数据就从第二列插入(2)索引超出了数组界限?
都是按行读取txt内容,(因为有两行数据和其他的不一样)用正则分析出来,赋给一个字符串数组, 将一个字符串数组的每个值一次写入数据库行的对应列。一行读取完成。 可是却显示,索引超出了数组界限,数组个数和行对应的 。将读取出来的数据显示在textBox中是正确的, 但是奇怪的是也确实是导入进去了,数据库中表格有了数据 最终结果似乎对的,除了第二行第一列没有数据。谢谢,刚入手,第一个程序!
PHP本地html文件替换某个字符串 只返回一行代码
``` <?php //替换txt文件中的某个字符串 //实现遍历指定文件下的目录总数量(不含子目录) header("Content-Type: text/html; charset=gb2312"); $path = (dirname(__FILE__));//当前文件夹,比如book000文件夹 echo $path. "<br>"; if(!is_dir($path )) //检查指定的文件是否是一个目录。如果目录存在,该函数返回 TRUE。 return null; $handle = opendir( $path ); //opendir打开目录句柄 if (is_dir($path)){ if ($dh = opendir($path)){ while (($file = readdir($dh)) !== false){ echo "filename:" . $file . "<br>"; } closedir($dh); } } while (false !== ($file = readdir($handle))) //readdir 返回目录中下一个文件的文件名 { if ($file != '.' && $file != '..') { $path2 = $path . '/' . $file;//文件路径 if (is_dir( $path2 )) { if (!is_file($path2."/index.php")){ echo "test.txt 文件不存在。"."<br>"; } else { //读取文件 $file_name=$path2."/index.php"; $fp=fopen($file_name,'r'); while(!feof($fp)) { $buffer=fgets($fp); //echo $buffer."001<br />"; if(strstr($buffer,"长沙"))//判断是否包含某个字符串 { //替换文件 $buffer = str_replace("长沙","",$buffer); //$buffer = preg_replace("长沙","",$buffer); echo $buffer."<br />"; $fp2=fopen($file_name,'w');//以写入的方式的打开 fwrite($fp2,$buffer); echo $file."/index.php中的字符串替换,成功。"."<br>"; fclose($fp2); } else{ echo $file."index.php 文件不包含被替换字符"."<br>"; } } fclose($fp); } } } } ?> ``` 请问各位大神,该如何替换html文件所需要替换的字符串后,输出修改后的文件 ``` 而不是只输出一行代码 ``` ``` ```
get请求,参数拼接,时间字符串拼接报错,然后大佬们说的我好想不太清楚咋弄,就新添了请求方法,和调用
java.io.IOException: Server returned HTTP response code: 400 for URL: http://api.baidu.com/getsyncusers?code=02&date=2019-10-10 10:16:00.0 at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) at com.dunan.zzjg.util.ApiGateToken.getResponseContext(ApiGateToken.java:115) at com.dunan.zzjg.service.impl.SysUserServiceImpl.setSyncUsers(SysUserServiceImpl.java:82) at com.dunan.zzjg.controller.DAapiController.userDate(DAapiController.java:44) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:117) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:106) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) /** * 根据请求地址及请求参数,获取服务器的相应信息 * * @param requestURL 请求地址 * @param requestParam 请求参数 * @param requestMethod "POST" or "GET" * @return */ public static String getResponseContext(String requestURL, String requestParam, String requestMethod,String token) { StringBuffer responseContext = new StringBuffer(); try { URL url = new URL(requestURL); // 此处的urlConnection对象实际上是根据URL的 URLConnection urlConn = url.openConnection(); urlConn.setConnectTimeout(30000); urlConn.setReadTimeout(30000); // 请求协议(此处是http)生成的URLConnection类 的子类HttpURLConnection,故此处最好将其转化 // 为HttpURLConnection类型的对象,以便用到 HttpURLConnection更多的API.如下: HttpURLConnection httpUrlConnection = (HttpURLConnection) urlConn; // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 // http正文内,因此需要设为true, 默认情况下是false; httpUrlConnection.setDoOutput(true); // 设置是否从httpUrlConnection读入,默认情况下是true; httpUrlConnection.setDoInput(true); // Post 请求不能使用缓存 httpUrlConnection.setUseCaches(false); // 设定传送的内容类型是可序列化的java对象 // (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException) httpUrlConnection.setRequestProperty("Content-type","application/json"); // 设置 HttpURLConnection的字符编码 httpUrlConnection.setRequestProperty("Accept-Charset", "UTF-8"); if(StringUtils.isNotBlank(token)){ httpUrlConnection.setRequestProperty("Access-Token", token); } // 设定请求的方法为"POST",默认是GET httpUrlConnection.setRequestMethod(requestMethod); // 连接,从上述第2条中url.openConnection()至此的配置必须要在connect之前完成, // // 此处getOutputStream会隐含的进行connect(即:如同调用上面的connect()方法, // // 所以在开发中不调用上述的connect()也可以)。 if("POST".equals(requestMethod)){ OutputStream outStrm = httpUrlConnection.getOutputStream(); outStrm.write(requestParam.getBytes("UTF-8")); // // 刷新对象输出流,将任何字节都写入潜在的流中(些处为ObjectOutputStream) outStrm.flush(); // 关闭流对象。此时,不能再向对象输出流写入任何数据,先前写入的数据存在于内存缓冲区中, // 在调用下边的getInputStream()函数时才把准备好的http请求正式发送到服务器 outStrm.close(); } // 调用HttpURLConnection连接对象的getInputStream()函数, // 将内存缓冲区中封装好的完整的HTTP请求电文发送到服务端。 InputStream inStrm = httpUrlConnection.getInputStream(); // 读取文件流程 BufferedReader rd = new BufferedReader( new InputStreamReader(inStrm,"UTF-8")); // 采取行的方式进行读取 String tempLine = rd.readLine(); // 循环获取每一行数据 while (tempLine != null) { responseContext.append(tempLine); tempLine = rd.readLine(); } rd.close(); inStrm.close(); httpUrlConnection.disconnect(); httpUrlConnection = null; urlConn = null; url = null; } catch (Exception e) { e.printStackTrace(); } return responseContext.toString(); } /*获取上次更新的时间*/ TurnoverTime lastTime = timeMapper.selectTime(); String lastUpdateTime = lastTime.getLastUpdateTime(); System.out.println(lastUpdateTime); String url = "http://api.baidu.com/getsyncusers"; String param = "?code="+"02"+"&date="+lastUpdateTime; String requestMethod = "GET"; String token = ApiGateToken.getToken(); String responseContext = ApiGateToken.getResponseContext(url+param, param, requestMethod, token);
C++超大整数结构体实现乘法,就像要个乘法,网上的看不懂,希望来回答的能多写点注释或者给我讲讲!菜鸟求大佬
``` #include <stdio.h> #include <iostream> #include <string.h> #include <stdlib.h> #include <algorithm> using namespace std; //我们把输入的两个操作数放在结构体中方便解决 //首先,为了方便后面运算,我们先定义一个结构体把超长整数都定义为此类型 struct doublelong{ int d[1000]; //定义一维数组D int len; //下面定义构造函数,初始化,给予长度 doublelong(){ memset(d,0,sizeof(d)); //memset为初始化函数 数组d sizeof求出的d大小赋予空间 指向要填充的内存块d //d用于存放 输入的两个操作数 //全初始化为0 len=0; } }; //大整数使用字符串输入的, //下面将字符串储存的大整数 //存放在结构体中 doublelong change(char str[]){ doublelong a; a.len=strlen(str);//得出输入的大整数长度写入结构体中 for(int i=0;i<a.len;i++){ a.d[i]=str[a.len-i-1]-'0';//这里把大整数的地位切换为高位 反序 } return a; } //比较两个大整数的大小 int compare(doublelong a,doublelong b){ int g; //greater此处返回更大数字 g的值为1时a的值更大,2时b的值更大,为0时两个数字的值相等 //由于我们此函数只比较两个输入数字的绝对值,由于运算方式是单独判断符号所以不对符号进行比较 if(a.len>b.len){ g=1;return g;//a大于b } else if(a.len<b.len){ g=2; return g;//a<b } else{ for(int i=a.len-1;i>=0;i++) //一位位对比一位位读取向后读 { if(a.d[i]>b.d[i]) { g=1;return g; } if(a.d[i]<b.d[i]) { g=2;return g; } if(a.d[i]=b.d[i]) { g=0;return g; } } } } //下面是大数的四则运算法则 doublelong add(doublelong a,doublelong b) { doublelong c; int carry=0;//这里的carry表示进位 for(int i=0;i<a.len||i<b.len;i++) //循环向后读取相加 { int temp=a.d[i]+b.d[i]+carry; c.d[c.len++]=temp%10; //将我们相加得到的temp值给写入我们的输出大整数c中去 carry=temp/10;//求是否有进位 } if(carry!=0) {//如果最后一位的进位不为0,直接付给结果的最高位 c.d[c.len++] =carry; } return c;//程序结束返回doublelong c } void print(doublelong a) { for(int i=a.len-1;i>=0;i--) { printf("%d",a.d[i]); } } ```
PHP如何动态地生成部分页面?
**我使用PHP开发后台页面时有一个这个功能:**<br> 在table中通过查询MySQL数据库(库中分有用户基本信息表和用户详细数据表)展示用户基本信息,比如只有id、姓名、账号等,但每一项都包含一个按钮的操作:点击查看详细信息。只有点击“详情”按钮才会弹出一个对话框,该对话框显示了用户的所有详情。信息如下图: ![图片说明](https://img-ask.csdn.net/upload/201910/20/1571556327_489441.jpg) 按钮和对话框的元素关系部分代码:这些代码保存在了模板html文件中,通过php文件读取并替换{}内的字符串来传入参数,并展示一个表项。<br/> ``` <button type="button" data-target="#userDetailModel{id}" class="btn btn-sm btn-primary">详情</button> <div id="userDetailModel{id}" role="dialog" aria-hidden="true" class="modal fade text-left"> <!-- 一些展示内容的元素 --> ... </div> ``` <br/> **现在遇到的问题就是:**<br/> 我只想要在展示信息页面展示部分信息,所以查找数据库时更快一些,只有点击"详情"按钮时才会继续通过用户id来查询更多的数据,并展示出来。但是读取后的文件内容已经写入到页面中了,所以我怎么才能实现PHP再次查询数据库,并动态的改变已经写在HTML页面的内容?
iOS 本地.json文件的读写
创建.json文件,并写入内容,在路径下能够找到创建的文件和里面有写入的内容,但是相同路径下获取文件,读取的内容是空的。下面是代码: // ************ 创建文件 ************ / // 创建文件管理器 NSFileManager *fileManager = [NSFileManager defaultManager]; // 获取document路径,括号中属性为当前应用程序独享 NSArray *directoryPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentDirectory = [directoryPaths objectAtIndex:0]; NSLog(@"document = %@", documentDirectory); //定义记录文件全名以及路径的字符串filePath NSString *filePath = [documentDirectory stringByAppendingPathComponent:@"my_js.json"]; NSLog(@"filePath = %@", filePath); //查找文件,如果不存在,就创建一个文件 if (![fileManager fileExistsAtPath:filePath]) { [fileManager createFileAtPath:filePath contents:nil attributes:nil]; } // ************ 写入文件 ************ / NSString *temp = @"Hello world"; //创建数据缓冲 NSMutableData *writer = [[NSMutableData alloc]init]; //将字符串添加到缓冲中 [writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]]; [writer writeToFile:filePath atomically:YES]; // ************ 读取文件 ************ / NSData *jsonData = [NSData dataWithContentsOfFile:filePath]; id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:nil]; NSLog(@"读取文件 = %@", jsonObject);
后台处理IOS和Android上传图片问题
JAVA后台,处理Android和IOS上传的图片。安卓可以直接用输入输出流将图片写入文件,但是IOS不行, 直接使用输入输出流上传的图片会出现图片大小和原图片大小不一致的问题,导致图片打不开, 我现在是将IOS的图片转为字符串再上传到服务器然后服务器使用Base64将字符串转码,然后再使用ByteArrayInputStream读取,我想问有没有什么办法可以将IOS和Android上传 图片的方法统一?如果必须对不同平台做不同的保存图片的方法,那么通用的方法是怎么样的?谢谢大家。
怎么在一个char*字符串中截取出两个指定子串的中间部分?
大概就是读取一个文件,我是这么写代码的: FILE * inFile; if ( ( inFile = fopen( mMsgPath.c_str(), "rb") ) == NULL ) { return false; } fseek(inFile, 0, SEEK_END); fileLen = ftell(inFile); fseek(inFile,0, SEEK_SET); char* infoData = new char[fileLen]; fread(infoData, 1, fileLen, inFile); fclose(inFile); 然后我要从里头截取出“decode”和“over”之前的部分,并把截取的每一部分写入文件当中。我用strstr试了一下 居然找不到"over" 对指针不咋熟悉,大家帮我看看怎么实现这个功能?![图片说明](https://img-ask.csdn.net/upload/201706/15/1497488244_897234.jpg)
求助,JNA读取缓冲区的内容
我现在正在做一个跟摄像机交互的小项目,摄像机有一个SDK,我用JNA连接他提供的DLL库,然后注册,布防之后,他会在拍摄到车牌之后把车牌识别出来,通过布防的回调方法发送给我。 我现在能收到他发送的车牌的字符串,但是车牌拍摄图片的传输上,他给我提供了一个ByteByReference pBuffer1的变量数据,我尝试着用如下方式读取图片: Memory mymem = new Memory(2048*2048); strPlateInfo.pBuffer1.setPointer(mymem); byte[] DB = new byte[2048*2048]; mymem.read(0, DB, 0, 2048*2048); fout = new FileOutputStream("E:"+newName+"01.jpg"); //将字节写入文件 fout.write(DB); fout.close(); 但是失败了,我到底错在哪了呢,第一玩JNA,求大神指点下。
求大神:这段汇编代码写入mbr之后,能装入并执行,但是显示不了我要的字符串
;;我想写一个mbr的引导代码,一部分写好后发现运行不正常,就改成下面这段测试代;;;码,见鬼的是:不论你是用0000:7c00h作为cs:ip来设置偏移量,还是改成现在这;;;;;样子用07c0::0000作为入口指针都无法正确读取程序内的字符串,不知道是偏移量设;;置问题,还是别的问题,如果去掉字符串,改用mov al,'a',inc al的办法来循环输出;;;;;单个字符就能正常显示。 ;;??莫非mbr装入内存时也设置了PSP(程序段前缀),但是psp是由dos装入的啊。 ;;这是安装程序,负责将bootstrap标号之后的代码先装入buff指向的512 byte内存,之后再将这段内存数据写入磁盘的mbr扇区 ;;---------------安装程序------------------------------------------------------------ assume cs:code,ds:data,ss:stack data segment msg1 db 'written to disk successfully$' buff db 510 dup(0) db 55h,0aah msg2 db 'failed to write to disk$' data ends stack segment db 32 dup(0) stack ends code segment main: mov ax,data mov ds,ax mov es,ax mov ax,stack mov ss,ax mov sp,32 ;;将欲装入mbr的代码先装入buff定义的内存缓冲区,之后再利用int 13h写入磁盘 lea di,buff lea si,bootstrap push ds push cs pop ds mov cx,bootstrap_end-bootstrap cld rep movsb pop ds ;;int 13h 将缓冲区的512字节写入磁盘mbr lea bx,buff mov ax,0301h mov ch,0 mov cl,1 mov dh,0 mov dl,82h;;我的U盘 int 13h ;;判断写入磁盘是否成功 cmp ah,0 je success;;成功就跳转 ;;不成功就打印字符串到屏幕 mov cx,29 mov dh,12 mov dl,25 mov ah,13h ;the 13rd sub process of int 10 prints the string to the screen mov al,0 mov bl,4 mov bh,0 lea bp,msg2 int 10h jmp end1 ;;成功也打印成功的提示信息到屏幕 success: mov cx,29 mov dh,12 mov dl,25 mov ah,13h mov al,0 mov bl,4 mov bh,0 lea bp,msg1 int 10h end1: mov ax, 4c00h ;;主程序结束 int 21h ------------------------------待安装代码--------------------------------------------- ;;以下是将要写入mbr代码部分,到bootstrap_end 结束 bootstrap: mov ax,0 mov ss,ax mov sp,7c00h mov ax,07c0h mov ds,ax ;;利用retf 改变cs,ip饼跳转到go0标号处执行 push ax mov ax,go0-bootstrap push ax retf ;;实现在屏幕上输出reset标号处的字符串 go0: mov ax,0b800h mov es,ax mov di,800 mov bx,reset-bootstrap sss1: mov al,[bx] cmp al,0 je sss2 mov es:[di],al add bx,1 add di,2 jmp sss1 sss2:;;死循环 mov ah,0 int 16h jmp sss2 reset: db 'reset pc$$$$$$$',0 bootstrap_end: code ends end main
关于使用C语言自己写pcap文件,使用wireshark读取的问题
命令行下netsh trace命令抓取的网络包放在了.etl文件里,怎么提取抓到的数据包,并且把它对应的进程ID从etl文件中拿到 命令如下: C:\windows\system32> netsh trace start capture=yes tracefile="e:\test.etl" *******开始关联(就是在抓取 当前计算机上de网络数据包) C:Wndows\system32> netsh trace stop 生成test.etl文件,可以使用NetWork Monitor 3.4打开查看,网上也有很多教程,请问有人对etl文件进行过处理吗? 我在网上查阅资料之后使用tdh库函数可以获取etl里的文件。 想做的工作就是自己把etl文件里的内容拿出来,就相当于自制一个NetWork Monitor可是,这是最终的目标。现在出现很多问题。 就目前而言只希望能够把数据包写入pcap文件能够使用wireshark进行读取。就这都出现很多错误。 程序都是用C语言写的。 我现在可以拿到网络数据以及PID(不知道怎么获取进程名称),就是从以太帧头开始到数据所有的十六进制字符串。 现在把他们都按照pcap文件的格式写进pcap文件,命名方式为Pid_etl.pcap,希望成果是使用wireshark打开,并且能够查看对应五元组的信息,也就是source address,dest address, source port, dest prot。 (以及Pid。) UDP的数据包有些正确有些则显示错误,TCP的数据包写好之后有些正确,有些就被wireshark截断,报错说超出最大的长度。 ![图片说明](https://img-ask.csdn.net/upload/201508/03/1438612961_148153.png) ![图片说明](https://img-ask.csdn.net/upload/201508/03/1438612924_256444.png) 请大神求救...刚毕业找到工作的菜鸟,希望不吝指点啊.....
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star!【Java学习 面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。欢迎 Star!)。 另外推荐一篇原创:终极推荐!可能是最适合你的Java学习路线 方法 网站 书籍推荐! Java 并发基础常见面试题总结 1. 什么是线程和进程? 1.1. 何为进程? 进程是程...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友...
神经⽹络可以计算任何函数的可视化证明
《Neural Networks and Deep Learning》读书笔记第四篇本章其实和前面章节的关联性不大,所以大可将本章作为小短文来阅读,当然基本的深度学习基础还是要有的。主要介绍了神经⽹络拥有的⼀种普遍性,比如说不管目标函数是怎样的,神经网络总是能够对任何可能的输入,其值(或者说近似值)是网络的输出,哪怕是多输入和多输出也是如此,我们大可直接得出一个结论:不论我们想要计算什么样的函数,...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
活到老,学到老,程序员也该如此
全文共2763字,预计学习时长8分钟 图片来源:Pixabay 此前,“网传阿里巴巴要求尽快实现P8全员35周岁以内”的消息闹得沸沸扬扬。虽然很快被阿里辟谣,但苍蝇不叮无缝的蛋,无蜜不招彩蝶蜂。消息从何而来?真相究竟怎样?我们无从而知。我们只知道一个事实:不知从何时开始,程序猿也被划在了“吃青春饭”行业之列。 饱受“996ICU”摧残后,好不容易“头秃了变强了”,即将步入为“高...
Vue快速实现通用表单验证
本文开篇第一句话,想引用鲁迅先生《祝福》里的一句话,那便是:“我真傻,真的,我单单知道后端整天都是CRUD,我没想到前端整天都是Form表单”。这句话要从哪里说起呢?大概要从最近半个月的“全栈工程师”说起。项目上需要做一个城市配载的功能,顾名思义,就是通过框选和拖拽的方式在地图上完成配载。博主选择了前后端分离的方式,在这个过程中发现:首先,只要有依赖jQuery的组件,譬如Kendoui,即使使用...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了
字节跳动这家公司,应该是所有秋招的公司中,对算法最重视的一个了,每次面试基本都会让你手撕算法,今天这篇文章就记录下当时被问到的几个算法题,并且每个算法题我都详细着给出了最优解,下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀:有效括号 大部分情况下,面试官都会问一个不怎么难的问题,不过你千万别太开心,因为这道题往往可以拓展出更多有难度的问题,或者一道题看起来很简单,但是给出最优解,确实很...
关于裁员几点看法及建议
最近网易裁员事件引起广泛关注,昨天网易针对此事,也发了声明,到底谁对谁错,孰是孰非?我们作为吃瓜观众实在是知之甚少,所以不敢妄下定论。身处软件开发这个行业,近一两年来,对...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
相关热词 c# 数组类型 泛型约束 c#的赛狗日程序 c# 传递数组 可变参数 c# 生成存储过程 c# list 补集 c#获得所有窗体 c# 当前秒数转成年月日 c#中的枚举 c# 计算校验和 连续随机数不重复c#
立即提问