java如何读取doc文件

使用java如何读取doc文件,保证不会乱码

7个回答

如果不需要把图片读取出来,可以用下面的方法
public static void testWord1(){

try {

//word 2003: 图片不会被读取

InputStream is = new FileInputStream(new File("c:\a.doc"));

WordExtractor ex = new WordExtractor(is);

String text2003 = ex.getText().trim();

System.out.println(text2003);

//word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后

// OPCPackage opcPackage = POIXMLDocument.openPackage("c:\a.doc");

// POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);

               // String text2007 = extractor.getText();     
              //System.out.println(text2007);     

     } catch (Exception e) {     
               e.printStackTrace();     
     }   

如果是word2003用前半部分
如果是2007用后半部分

POI 设置编码

u010796208
黄菲 能不能说详细点
接近 6 年之前 回复

如果只有文字,没有图片、表格等
可以用下面的方法
先下载jacob
http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368
需要将acob-1.15-M4-x86.dll放在system32和jdk的bin下
先将word文档转成txt,然后从txt中读取
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class WordReader1 {

public static void extractDoc(String inputFIle, String outputFile) {

boolean flag = false; // 打开Word 应用程序

ActiveXComponent app = new ActiveXComponent("Word.Application");

try {

// 设置word 不可见

app.setProperty("Visible", new Variant(false));

// 打开word 文件

Dispatch doc1 = app.getProperty("Documents").toDispatch();

Dispatch doc2 = Dispatch.invoke(doc1,"Open",Dispatch.Method,new Object[] { inputFIle, new Variant(false), new Variant(true) }, new int[1]).toDispatch();

// 作为txt 格式保存到临时文件

Dispatch.invoke(doc2, "SaveAs", Dispatch.Method, new Object[] {outputFile, new Variant(7) }, new int[1]); // 关闭word
Variant f = new Variant(false);

Dispatch.call(doc2, "Close", f);

flag = true;

} catch (Exception e) {

e.printStackTrace();

} finally {

app.invoke("Quit", new Variant[] {});

}

if (flag == true) {

System.out.println("Transformed Successfully");

} else {

System.out.println("Transform Failed");

}

}

public static void main(String[] args) {

WordReader1.extractDoc("c:/a.doc", "c:/a.txt");
}
}

u010796208
黄菲 主要是我现在里面有文字和图片啊
接近 6 年之前 回复

使用poi:
package org.apache.poi.hwpf;
19

20 import org.apache.poi.hwpf.model.FileInformationBlock;
21 import org.apache.poi.poifs.filesystem.DocumentEntry;
22 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
23 import org.apache.poi.POIDataSamples;
24

25

26 public final class HWPFDocFixture
27 {
28 public static final String DEFAULT_TEST_FILE = "test.doc";
29

30 public byte[] _tableStream;
31 public byte[] _mainStream;
32 public FileInformationBlock _fib;
33 private String _testFile;
34

35 public HWPFDocFixture(Object obj, String testFile)
36 {
37 _testFile = testFile;
38 }
39

40 public void setUp()
41 {
42 try
43 {
44 POIFSFileSystem filesystem = new POIFSFileSystem(
45 POIDataSamples.getDocumentInstance().openResourceAsStream(_testFile));
46

47 DocumentEntry documentProps =
48 (DocumentEntry) filesystem.getRoot().getEntry("WordDocument");
49 _mainStream = new byte[documentProps.getSize()];
50 filesystem.createDocumentInputStream("WordDocument").read(_mainStream);
51

52 // use the fib to determine the name of the table stream.
53 _fib = new FileInformationBlock(_mainStream);
54

55 String name = "0Table";
56 if (_fib.getFibBase().isFWhichTblStm())
57 {
58 name = "1Table";
59 }
60

61 // read in the table stream.
62 DocumentEntry tableProps =
63 (DocumentEntry) filesystem.getRoot().getEntry(name);
64 _tableStream = new byte[tableProps.getSize()];
65 filesystem.createDocumentInputStream(name).read(_tableStream);
66

67 _fib.fillVariableFields(_mainStream, _tableStream);
68 }
69 catch (Throwable t)
70 {
71 t.printStackTrace();
72 }
73 }
74

75 public void tearDown()
76 {
77 }
78

79 }

这种问题,明显是查API就能解决的事!

没什么用,表格和图片都读不了。连最基本的格式都读不出来。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java读取文件时,判断文件类型与后缀是否一致
java读取文件时,判断文件类型与后缀是否一致,若是人文手动修改文件后缀,将excel改成doc,那这时候校验出来的结果应该是文件格式与后缀不一致这个结果。(不使用只判断后缀名的方式)
读取word文件,出现乱码,应该怎么解决
我在swing中,通过Jfilechooser选择文件,然后用bufferreader读取doc文件,显示在jtextArea中为乱码,请问应该怎么解决。 ``` button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JFileChooser jf = new JFileChooser("..\\稻田综合种养信息服务系统\\src\\files"); jf.setDialogTitle("Chose..."); int result = jf.showOpenDialog(getContentPane()); jf.setVisible(true); File selectedFile = null; FileReader fileReader=null; BufferedReader bufferreader = null; String line; if (result == JFileChooser.APPROVE_OPTION) { textArea.setText(""); File file=jf.getSelectedFile(); try { fileReader=new FileReader(file); bufferreader=new BufferedReader(fileReader); } catch (FileNotFoundException e1) { e1.printStackTrace(); } try { while ((line = bufferreader.readLine()) != null) { textArea.append(line + "\r\n");//按行读取文本,显示在TEXTAREA中 } } catch (IOException e1) {e1.printStackTrace(); } } if (result == JFileChooser.CANCEL_OPTION) { textArea.setText(""); textArea.setText(""); } if (result == JFileChooser.ERROR_OPTION) { textArea.setText(""); textArea.setText(""); } } }); ``` 这是我读出来doc的样子,全是乱码。 ![图片说明](https://img-ask.csdn.net/upload/201906/08/1560001124_555412.png)
文件中图片数据的读取与处理
1、问题描述:文件test.doc中,有下列图片 ![图片说明](https://img-ask.csdn.net/upload/201804/03/1522726677_43787.png) 将图片中的数字读取出来,用程序处理。 2、得到manage.doc文件:test.doc文件中读取出来的数字按顺序两两组成一组,每个数字在0~999之间,超出范围的去掉,负数取绝对值。上面图片中的数字,处理后输出到文件manage.doc中。 manage.doc文件内容如下: 373~413 745~785 376~416 742~782 485~525 633~673 116~156 742~748 782~788 636~676 854~894 376~416 89~129 639~679 911~951 613~653 937~977 523~563 338~378 613~653 665~705 549~589 729~769 10~50 70~110 570~610 564~604 463~503 565~605 97~137 299~339 96~136 300~340 453~493 889~929 82~122 518~558 3、对文件manage.doc数据处理 将文件manage.doc文件内容读取到程序中,对数据进行处理 把出现相同次数的范围数字输出来。 最后输出结果: 出现1次的范围: 10~50 70~81 138~156 299~299 341~372 453~462 504~517 606~610 680~705 729~741 786~788 854~888 895~910 930~936 952~977 出现2次的范围: 82~88 137~137 300~337 340~340 373~375 414~416 463~484 494~503 518~522 526~548 559~564 605~605 613~632 677~679 770~781 783~785 889~894 911~929 937~951 出现3次的范围: 89~95 130~136 338~339 379~413 485~493 523~525 549~558 565~569 590~604 633~635 654~664 674~676 742~744 749~769 782~782 出现4次的范围: 96~96 111~115 123~129 376~378 570~589 636~638 665~673 745~748 出现5次的范围: 97~110 116~122 639~653 注:请各位大神帮忙,代码用java编写,myeclipse编译,输出结果要一致。 我的代码就不发了,有几个难点没解决!结果超出满意度加C币!
JDOM读取XML文件问题
1.XML文件 <?xml version="1.0" encoding="UTF-8"?> <root target="sysmain" desc="非现场监管报送" id="Y000"> <DataItem text="数据处理"> <Item text="数据填报"></Item> <Item text="文件提交"></Item> <Item text="数据校验"></Item> <Item text="数据汇总"></Item> <Item text="Top(N)汇总"></Item> </DataItem> <DataItem text="报送管理" id="Y200"> <Item text="报送项目管理"></Item> <Item text="报送文件生成"></Item> </DataItem> <DataItem text="数据查询" id="Y300"> </DataItem> <DataItem text="制度查询" id="Y400"> </DataItem> <DataItem text="规则定制" id="Y500"> </DataItem> </root> 2.JAVA类 package com.pj.manager.action; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; public class MenuTreeAction { public static void main(String[] args) throws Exception{ SAXBuilder sb=new SAXBuilder(); Document doc=sb.build("MenuXML/1104SiteMap.xml"); //构造文档对象 Element root=doc.getRootElement(); //获取根元素 List list=root.getChildren("DataItem");//取名字为DataItem的所有元素 for(int i=0;i<list.size();i++){ Element element = (Element)list.get(i); String DataItem = element.getAttributeValue("text"); System.out.println("父结点:"+DataItem); Element root2 = doc.getRootElement().getChild("DataItem"); List itemlist = root2.getChildren("Item"); String[] Item = new String[itemlist.size()]; for(int j=0; j<itemlist.size(); j++) { Element itemelement = (Element)itemlist.get(j); Item[j] = itemelement.getAttributeValue("text"); System.out.println("--子结点:"+Item[j]); } System.out.println("-----------------------------------"); } } } 3.输出结果 父结点:数据处理 --子结点:数据填报 --子结点:文件提交 --子结点:数据校验 --子结点:数据汇总 --子结点:Top(N)汇总 ----------------------------------- 父结点:报送管理 --子结点:数据填报 --子结点:文件提交 --子结点:数据校验 --子结点:数据汇总 --子结点:Top(N)汇总 ----------------------------------- 父结点:数据查询 --子结点:数据填报 --子结点:文件提交 --子结点:数据校验 --子结点:数据汇总 --子结点:Top(N)汇总 ----------------------------------- 父结点:制度查询 --子结点:数据填报 --子结点:文件提交 --子结点:数据校验 --子结点:数据汇总 --子结点:Top(N)汇总 ----------------------------------- 父结点:规则定制 --子结点:数据填报 --子结点:文件提交 --子结点:数据校验 --子结点:数据汇总 --子结点:Top(N)汇总 ----------------------------------- 4.**********疑问所在*********** 因为我在根结点root下面有多个相同的DataItem节点,我要取第二个DataItem下的所有Item节点应该如何去取??? 上面程序所有DataItem节点下的子结点都为第一个DataItem下的子节点。
Android studio 中使用java 读取txt 文件, 返回的是空串
各位大神: 如题 在android studio中, 断点看了一下 ,程序没有进 while 循环啊,result 直接是空串了.然后就直接进入 catch了. 但是使用javac 编译, 可以正常打印txt文件中的内容 public static String txtFile(File file) { StringBuilder result = new StringBuilder(); try { BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件 String s = "null"; while ((s = br.readLine()) != null) {//使用readLine方法,一次读一行 result.append(System.lineSeparator() + s); } br.close(); } catch (Exception e) { e.printStackTrace(); } return result.toString(); catch 中的异常提示 : java io fileNotFoundException D:/Fortest/test_doc/testfile.txt: open failed: ENOENT (No such file or directory) 但是本地有这个文件,因为 javac 编译通过了,而且打出了字符串 ,如下 : 但是在本地,使用javac 编译,然后运行,可以正常打印出txt 内容. D:\test>javac Filedemo.java D:\test>java Filedemo Love your parents. We are too busy growing up yet we forget that they are already growing old. The moment you think about giving up,think of the reason why you held on so long. 如果javac 编译可以通过,那说名程序没有问题啊, studio 环境问题? 求解答. 非常感谢
java关于二进制文件读取问题
用lucene写了一个抓包程序,在检索文件过程中,我通过数据包偏移量来读取指定内容并写入新文件,但是根据偏移量单次去读可以找到文件内容,但是使用循环只能读到第一次循环的内容后面的都读取不到,我根据生成的偏移量,一次一次去查询,可以找到内容,但在这个循环里却无法找到,求大神指点 这是关键代码部分: long start=System.currentTimeMillis(); InputStream os=new FileInputStream("dfda.cap"); DataInputStream in=new DataInputStream(os); byte[] bytes=new byte[24]; in.read(bytes, 0, 24); System.out.println(bytes); FileOutputStream fos3=new FileOutputStream("abd.cap",true); //System.out.println(bytes.length); fos3.write(bytes); fos3.flush(); TopDocs hits=isa.search(t1, 10); long end=System.currentTimeMillis(); System.out.println("共花费"+(end-start)+"milliseconds"); System.out.println("共有"+hits.totalHits+"匹配"); for(ScoreDoc scoreDoc:hits.scoreDocs) { Document doc=isa.doc(scoreDoc.doc); int length=Integer.parseInt(doc.get("length")); int len=Integer.parseInt(doc.get("len")); System.out.println(length); System.out.println(len); byte[] bytess=new byte[len]; in.skipBytes(length); in.read(bytess); System.out.println(bytess); fos3.write(bytess); fos3.flush(); System.out.println("写入完成!"); } in.close(); fos3.close(); }
java读取带有图片的docx文件
注意是docx不是doc,格式也按照docx的格式读取,项目紧急,请各位大神出山啊
java 打开共享文件夹里面的doc、pdf等文件
注意:我只是要打开而已,而不是读取里面的数据,最简单的要求,能打开文件就行。 ![图片说明](https://img-ask.csdn.net/upload/201704/14/1492151909_350170.png) 现在的问题是我用自己的电脑能打开word,但用别人电脑输入web项目地址打开的时候,他的电脑没反应,反而操控了我的电脑,我的电脑打开了那个他点击的word文档。 @ResponseBody @RequestMapping(value="/OpenDocPdf",method=RequestMethod.POST,produces="application/json;charset=utf-8") public void OpenDocPdf(String nodetext){ try { System.out.println("explorer.exe "+nodetext); Runtime.getRuntime().exec("explorer.exe "+nodetext); /*Desktop.getDesktop().open(new File(nodetext));*/ } catch (IOException e) { // TODO Auto-generated catch block } } 这是我后台用的方法。 哪位大哥帮帮忙,小妹愿意以身相许。
IO流读取文件乱码,为什么?
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@ page import="java.io.*"%> <%@ page import="org.apache.struts2.ServletActionContext"%> <%@ taglib prefix="s" uri="/struts-tags" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'MyJsp.jsp' starting page </title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <s:fielderror> <s:param>account.hello</s:param> </s:fielderror><!-- 为什么这个存在时直接访问此界面时就不会报错,否则报错 --> <% //request.setCharacterEncoding("UTF-8") ; String realpath = ServletActionContext.getServletContext() .getRealPath("/upload"); try { // 创建文件输入流对象 FileInputStream is = new FileInputStream(realpath+"\\"+"nihao.doc"); // 设定读取的字节数 int n = 512; byte buffer[] = new byte[n]; // 读取输入流 while (is.read(buffer, 0, n) >0) { String str = new String(buffer); out.print(str); out.print("<br>"); } // 关闭输入流 is.close(); } catch (IOException ioe) { System.out.println(ioe); } catch (Exception e) { System.out.println(e); } %> </body> </html>
图片文件读取报错!!
文件number.doc原数据 ![图片说明](https://img-ask.csdn.net/upload/201804/04/1522810679_457970.png) 代码如下: import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import org.apache.poi.hwpf.extractor.WordExtractor; public class Test { public String readWord(String path) { String buffer = ""; try { if (path.endsWith(".doc")) { InputStream is = new FileInputStream(new File(path)); WordExtractor ex = new WordExtractor(is); buffer = ex.getText(); ex.close(); } else { System.out.println("请选择后缀为.doc的文件"); } } catch (Exception e) { e.printStackTrace(); } return buffer; } public static void main(String[] args) { Test tp = new Test(); String content = tp.readWord("D:\\number.doc"); //文件存放的地址 System.out.println("content===="+content); } } myeclipse编译时信息 org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF) at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:131) at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:104) at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:128) at org.apache.poi.hwpf.HWPFDocumentCore.verifyAndBuildPOIFS(HWPFDocumentCore.java:106) at org.apache.poi.hwpf.extractor.WordExtractor.<init>(WordExtractor.java:53) at Test.readWord(Test.java:14) at Test.main(Test.java:28) content==== 有知道原因的吗?
java poi能写入图片到doc的word文档中吗?
项目中根据模版文件生成表单,填入数据后,会生成新的word文件(doc或者docx), 然后有可能对生成的word文件进行修改,但是不能通过word文档来修改,因为会把 内容所在的标签删除掉。因此只能通过代码,先读word文档,然后修改后,重新生成word文档。项目用的是poi3.9,对docx的图片读取和写入都可以实现。对doc的图片读取也可以,但是写入不行。找了很久,也没有看到解决办法,希望大神们,支支招!
面向对象读取xml文件的内容是出现问题
问题描述:当读取完xml文件时,objectvector中理论是装的应该是5个不同的对象(id为1,2,3,4,5),但是结果输出的五个对象都是相同(id为5的对象) [code="java"] /** * * @param fileName xml文件地址 * @param co 要解析成为的对象类型 * @return */ public Vector<?> read(String fileName, Class<?> co) { /** * 变量声明 */ // 从xml文档中解析出来的字段及其值 Map<String, String> xmlfieldValue = new HashMap<String, String>(); // 对象字段的集合,用于从xml中取该字段的值 Set<String> s = new HashSet<String>(); Vector<Object> objectvector = new Vector<Object>(); String className = ""; try { /** * 变量初试化 */ Object o = co.newInstance(); className = o.getClass().getSimpleName(); Reflect r = new Reflect(o); s = r.getFieldName(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); File file = new File(fileName); if (file.exists()) { Document doc = db.parse(file); Element docEle = doc.getDocumentElement(); NodeList oobjectNodeList = docEle.getElementsByTagName(className); if (oobjectNodeList != null && oobjectNodeList.getLength() > 0) { for (int i = 0; i < oobjectNodeList.getLength(); i++) { Node node = oobjectNodeList.item(i); Object o1 =null; if (node.getNodeType() == Node.ELEMENT_NODE) { Iterator<String> it = s.iterator(); while (it.hasNext()) { String field = it.next(); Element e = (Element) node; NodeList nodeList = e.getElementsByTagName(field); String fieldValue = nodeList.item(0).getChildNodes().item(0).getNodeValue(); xmlfieldValue.put(field, fieldValue); } o1 = r.setFieldNameAndValue(o, xmlfieldValue); //测试是否全部解析,结果全部解析了 System.out.println(o1.toString()); } objectList.add(o1); } //这个管取第几个对象,结果都是id为5的那个对象 System.out.println(objectList.get(0).toString()); } } } catch (Exception e) { System.out.println(e); } return objectList; } [/code] [code="java"] public class Linkman { private String id ; private String name; private String location; private String mail; private String pic; private String remark; private String updateTime; public Linkman(){} public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getMail() { return mail; } public void setMail(String mail) { this.mail = mail; } public String getPic() { return pic; } public void setPic(String pic) { this.pic = pic; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getUpdateTime() { return updateTime; } public void setUpdateTime(String updateTime) { this.updateTime = updateTime; } @Override public String toString() { return "Linkman [id=" + id + ", location=" + location + ", mail=" + mail + ", name=" + name + ", pic=" + pic + ", remark=" + remark + ", updateTime=" + updateTime + "]"; } [/code] [code="xml"] <?xml version="1.0" encoding="GB2312" standalone="no" ?> - <usr> - <Linkman> <id>1</id> <mail>谷歌邮箱</mail> <location>赣州</location> <remark>无</remark> <updateTime>今天</updateTime> <name>cheng</name> <pic>无</pic> </Linkman> - <Linkman> <id>2</id> <mail>谷歌邮箱</mail> <location>赣州</location> <remark>无</remark> <updateTime>今天</updateTime> <name>cheng</name> <pic>无</pic> </Linkman> - <Linkman> <id>3</id> <mail>谷歌邮箱</mail> <location>赣州</location> <remark>无</remark> <updateTime>今天</updateTime> <name>cheng</name> <pic>无</pic> </Linkman> - <Linkman> <id>4</id> <mail>谷歌邮箱</mail> <location>赣州</location> <remark>无</remark> <updateTime>今天</updateTime> <name>cheng</name> <pic>无</pic> </Linkman> - <Linkman> <id>5</id> <mail>谷歌邮箱</mail> <location>赣州</location> <remark>无</remark> <updateTime>今天</updateTime> <name>cheng</name> <pic>无</pic> </Linkman> </usr> [/code]
.jsp页面IO流读取文件报错
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@ page import="java.io.*"%> <%@ page import="org.apache.struts2.ServletActionContext"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'MyJsp.jsp' starting page </title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% //request.setCharacterEncoding("UTF-8") ; String realpath = ServletActionContext.getServletContext() .getRealPath("/upload"); try { // 创建文件输入流对象 FileInputStream is = new FileInputStream(realpath+"\\"+"nihao.doc"); // 设定读取的字节数 int n = 512; byte buffer[] = new byte[n]; // 读取输入流 while (is.read(buffer, 0, n) >0) { String str = new String(buffer); out.print(str); System.out.println(); } // 关闭输入流 is.close(); } catch (IOException ioe) { System.out.println(ioe); } catch (Exception e) { System.out.println(e); } %> </body> </html> 报错信息为: 2015-7-26 20:59:01 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException at org.apache.jsp.MyJsp_jsp._jspService(MyJsp_jsp.java:91) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:426) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619)
一个关于字节流的问题
//1.创建一个字节流输入对象,构造方法中绑定数据源 FileInputStream fis = new FileInputStream("C:\\Java.doc"); //2.创建一个字节输出流对象,构造方法中绑定目的地 FileOutputStream fos = new FileOutputStream("D:\\IO流练习\\java.doc"); //使用一个字节数组作为数据缓冲 byte[] bytes = new byte[1024]; //3.使用字节输入流对象中的read方法读取文件 int len = 0; while((len = fis.read(bytes)) != -1){ //4.使用字节输出流中的write,把读取到的字节写入到目的地 fos.write(bytes,0,len); } //5.关闭资源 fos.close(); fis.close(); 对于以上代码提问:对于执行方法fis.read(bytes)的返回值len,它应该表示为读取文件的有效长度下标bytes.length-1,为什么可以等于-1. 解决完上述问题,那么再问:当读取的返回值len=-1,表示输入流读取数据已经读到文件结束了,那么这个时候fos.write(bytes,0,len)这段代码应该不会再执行了,那么最后一次读取的数据还保存在数组bytes里面,而没有执行输出流操作 那这段代码为什么在执行的时候可以完整的复制一个文件,而没有数据丢失???
java根据模板修改内容后,生成word,修改后内容中文乱码
Java code package com.sunyard.test; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Date; public class OperatorRTF { /** * 字符串转换为rtf编码 * * @param content * @return */ public String strToRtf(String content) { try { System.out.println(content); content=new String(content.getBytes(),"GB2312"); System.out.println(content); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } char[] digital = "0123456789ABCDEF".toCharArray(); StringBuffer sb = new StringBuffer(""); byte[] bs = null; bs = content.getBytes(); int bit; for (int i = 0; i < bs.length; i++) { bit = (bs[i] & 0x0f0) >> 4; sb.append("\\'"); sb.append(digital[bit]); bit = bs[i] & 0x0f; sb.append(digital[bit]); } return sb.toString(); } /** * 替换文档的可变部分 * * @param content * @param replacecontent * @param flag * @return */ public String replaceRTF(String content, String replacecontent, int flag) { String rc = strToRtf(replacecontent); String target = ""; System.out.println(rc); if (flag == 0) { target = content.replace("$timetop$", rc); } if (flag == 1) { target = content.replace("$info$", rc); } if (flag == 2) { target = content.replace("$idea$", rc); } if (flag == 3) { target = content.replace("$advice$", rc); } if (flag == 4) { target = content.replace("$infosend$", rc); } return target; } /** * 获取文件路径 * * @param flag * @return */ public String getSavePath() { String path = "D:\\"; File fDirecotry = new File(path); if (!fDirecotry.exists()) { fDirecotry.mkdirs(); } return path; } /** * 半角转为全角 */ public String ToSBC(String input) { char[] c = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == 32) { c[i] = (char) 12288; continue; } if (c[i] < 127) { c[i] = (char) (c[i] + 65248); } } return new String(c); } public void rgModel(String username, String content) { /* 构建生成文件名 targetname:12时10分23秒_username_记录.rtf */ Date current = new Date(); SimpleDateFormat sdf = new java.text.SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); String targetname = sdf.format(current).substring(11, 13) + "时"; targetname += sdf.format(current).substring(14, 16) + "分"; targetname += sdf.format(current).substring(17, 19) + "秒"; targetname += "_" + username + "_记录.doc"; /* 字节形式读取模板文件内容,将结果转为字符串 */ String strpath = getSavePath(); String sourname = strpath + "\\" + "档案利用登记单.rtf"; String sourcecontent = ""; InputStream ins = null; try { ins = new FileInputStream(sourname); byte[] b = new byte[1024]; if (ins == null) { System.out.println("源模板文件不存在"); } int bytesRead = 0; while (true) { bytesRead = ins.read(b, 0, 1024); // return final read bytes // counts if (bytesRead == -1) {// end of InputStream System.out.println("读取模板文件结束"); break; } // convert to string using bytes sourcecontent += new String(b, 0, bytesRead); } } catch (Exception e) { e.printStackTrace(); } /* 修改变化部分 */ String targetcontent = ""; /** * 拆分之后的数组元素与模板中的标识符对应关系 array[0]:timetop array[1]:info array[2]:idea * array[3]:advice array[4]:infosend */ String array[] = content.split("~"); // 2008年11月27日:更新模板之后时间无需自动填充 for (int i = 0; i < array.length; i++) { if (i == 0) { targetcontent = replaceRTF(sourcecontent, array[i], i); } else { targetcontent = replaceRTF(targetcontent, array[i], i); } } /* 结果输出保存到文件 */ try { FileWriter fw = new FileWriter(getSavePath() + "\\" + targetname, true); PrintWriter out = new PrintWriter(fw); System.out.println(targetcontent); if (targetcontent.equals("") || targetcontent == "") { out.println(sourcecontent); } else { out.println(targetcontent); } out.close(); fw.close(); System.out.println(getSavePath() + " 该目录下生成文件" + targetname + " 成功"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { OperatorRTF oRTF = new OperatorRTF(); // 被替换内容以"~"符号分割,处理的时候将其拆分为数组即可 String content = "2008Y10M12D9H-2008Y10M12D6H~idea~look~我们参照检验药品的方法~we"; oRTF.rgModel("cheney", content); } } 上面的代码是我在网上找到的一种java操作word的方法 java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄;itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法。经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,不需要借助任何插件,只需基本IO操作外加编码转换即可。rtf格式文件表面看来和doc没啥区别,都可以用word打开,各种格式都可以设定。 ----- 实现的功能:读取rtf模板内容(格式和文本内容),替换变化部分,形成新的rtf文档。 ----- 实现思路:模板中固定部分手动输入,变化的部分用$info$表示,只需替换$info$即可。 1、采用字节的形式读取rtf模板内容 2、将可变的内容字符串转为rtf编码 3、替换原文中的可变部分,形成新的rtf文档 这是原作者的想法,可我在使用过程中,发现替换内容中(我们参照检验药品的方法)这个中文,是不能显示的,在word里,把它转换成了iso-8859-1的编码了,不能正常显示中文,我都不知道应该在哪设置编码,才能让它正常显示,原word模板中的中文,可以正常显示,应该是在读取word模板的时候,把编码方式也读进去了,现在就是想请教一下前辈们,应该如何后,自己修改的那些中文,也可以正常显示呢 [b]问题补充:[/b] 汗,这里好象自己不能回复,所以我以这种形式回复。 先感谢一楼,二楼的回答,昨天我有事,请假没上班,所以没能及时回复,先道个歉。 先回答1楼的,在写的时候,我设置编码的话,感觉是无效的,不管我怎么设置,都没用。 再回答2楼的,特别说一下,我试了一下,发现生成的word里,那些修改部分的中文的编码形式改变了,只是还是乱码。后来我把unicode,ISO-8859-1,UTF-8,GB2312,GBK,甚至ASCII都试过了, word里都是不同形式的乱码,就是不出现汉字,真闷,我感觉是在 bs = content.getBytes("unicode"); 后,系统后来又默认的把这把转成了ISO-8859-1的形式. 可是 bs = content.getBytes("ISO-8859-1"); 我这么设置,word里的汉字是????? 真不知道为什么,要是ISO-8859-1,转ISO-8859-1,应该不会改变的哎 希望高手们,能继续解答,谢谢 [b]问题补充:[/b] 汪兆铭,您好,我不知道您一直观注这个问题,我以为要过会才能看到您的回答,所以,现在才刷新了这个页面,不好意思,先道个歉。 现在回到问题中,我照您的意思, bs = content.getBytes("unicode"); 改了一下,然后输入,可是依然不能正常显示中文,是不是,在哪,还需要再转换一次呢? [b]问题补充:[/b] mirzlm@126.com 谢谢,不知道与jdk版本或是什么的没有关系 [b]问题补充:[/b] 汪兆铭,您好,我看了一下您发的东西,我发现了问题的所在,竟然是在表格单元格里面的,就替换出来的是乱码,在表格单元格外面的,是可以正常显示的,您可以去试试,把替换的那个,放在表格里,看看,会不会成功,谢谢你的帮助 [b]问题补充:[/b] 谢谢您,给我这么多的帮助,那应该是我的那个rtf模板的问题了,真的很感谢,谢谢,谢谢,再谢谢
Java利用POI读取Word文档
虽然读取了word文档,但是没有格式。 这是我的代码 public class JFrameTest extends JFrame{ JTextArea jta=null; FileReader fr=null; BufferedReader br=null; public JFrameTest() { jta=new JTextArea(20,40); WordExtractor extractor=null; FileInputStream in=null; try{ in = new FileInputStream ("D:/javaword.doc"); extractor = new WordExtractor(); String str = extractor.extractText(in); jta.setText(str); }catch(Exception e){ e.printStackTrace(); }finally{ try { in.close(); } catch (IOException e1) { e1.printStackTrace(); } } this.add(jta); this.setTitle("读取文件"); this.setBounds(0, 0, 700, 500); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args){ JFrameTest jft=new JFrameTest(); } } 我是利用文本域显示的,请问各位前辈可不可以直接通过java中的事件机制直接打开word文档呢? 能不能解决格式不显示的情况? POI中的WordExtractor能和字符流(FileReader等)结合使用吗? 谢谢 (不好意思 C币余额不足)
struts2 上传文件 uploadAction中的File名称NULL,实在不知道哪里错了!!
struts.xml文件 ``` <struts> <!-- 设置文件上传允许最大值 为10M--> <constant name="struts.multipart.maxSize" value="10485760"></constant> <!-- 配置上传文件的出错信息的资源文件 --> <constant name="struts.custom.i18n.resources" value="cn.itcast.action.FileUploadMessage"/> <constant name="struts.multipart.saveDir" value="/upload"/> <package name="struts2" namespace="/" extends="struts-default"> <!-- 简单文件上传 --> <!-- <action name="fileUpload" class="cn.itcast.action.FileUploadAction"> --> <!-- <result name="success">/result.jsp</result> --> <!-- </action> --> <!-- 文件上传(限制大小和类型) --> <action name="fileUpload" class="gzy.FileUploadAction"> <result name="success">/index.jsp</result> <!--定义上传出错要跳转的页面 --> <result name="input">/login.jsp</result> <interceptor-ref name="defaultStack"> </interceptor-ref> </action> </package> </struts> ``` login.jsp文件 ``` <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>login</title> </head> <body> <s:form action="fileUpload" method="post" entype="multipart/form-data"> <s:textfield name="test" label="测试文本"></s:textfield> <s:file label="上传文件" name="doc"></s:file> <s:submit value="上传"/> </s:form> <br/> <br/> </body> </html> ``` fileuploadaciton.java ``` import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.io.FileUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class FileUploadAction extends ActionSupport{ private static final long serialVersionUID=1L; //提交过来的文件 private File doc; //提交过来的file的名字 private String docFileName; //提交过来的file的类型 private String docContentType; private String test; public String getTest(){ return test; } public void setTest(String test){ this.test=test; } public File getFile() { return doc; } public void setFile(File file) { this.doc = file; } public String getFileFileName() { return docFileName; } public void setFileFileName(String fileFileName) { this.docFileName = fileFileName; } public String getFileContentType() { return docContentType; } public void setFileContentType(String fileContentType) { this.docContentType = fileContentType; } public String execute() throws Exception { //文件输入流 InputStream is = new FileInputStream(doc); //设置文件保存的目录 String uploadPath = ServletActionContext.getServletContext() .getRealPath("/upload"); //设置目标文件 File toFile = new File(uploadPath, this.getFileFileName()); //文件输出流 OutputStream os = new FileOutputStream(toFile); byte[] buffer = new byte[1024]; int length = 0; //读取file文件输出到toFile文件中 while(-1 != (length = is.read(buffer, 0, buffer.length))) { os.write(buffer); } //关闭输入流和输出流 is.close(); os.close(); return SUCCESS; } } ``` 总是提示我的aciton类错了java.lang.NullPointerException java.io.FileInputStream.<init>(Unknown Source) gzy.FileUploadAction.execute(FileUploadAction.java:56) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 就是这一行: ``` //文件输入流 InputStream is = new FileInputStream(doc); ``` 求大神
关于dom4j 解析hbm.xml文件。。
用dom4j 解析 普通的XML速度倒是挺快的。。 但是解析hbm.xml的时候 时间就会很慢。。 我只是取其中的id的部分节点值 肿么可以更高效的读取呢?? 现在读取的话 大概4个HBM.XML 需要2分多钟才能出来。。 而且2个HBM都不超过10个字段 没有set。 2个方法: [code="java"] //读取XML文件返回doc实体 public Document getDocumentByPath(String path){ SAXReader saxReader = new SAXReader(); Document document; String end=""; try { document = saxReader.read(path); return document; } catch (DocumentException e) { e.printStackTrace(); return null; } } //读取需要的节点值 并返回 public String getXmlValue(Document doc,String rootName){ SAXReader saxReader = new SAXReader(); Document document=doc; String end=""; try { //获取并返回所有对应节点的属性值 List list = document.selectNodes(rootName); Iterator iter = list.iterator(); while (iter.hasNext()) { Attribute attribute = (Attribute) iter.next(); end=attribute.getValue(); break; } return end; } catch (Exception e) { e.printStackTrace(); return ""; } } [/code] 求指点。。
[java]使用itext以及itext-asian实现pdf根据模板文件填充数据生成新pdf文件遇到的问题
发现中文 显示问题,不知道是否是itext-asian5.2.0包的bug,在中文显示中,只有“证”字无法显示,其他中文目前没发现有不显示的问题。 ``` String templatePath = "D:/updates/pdfTest.pdf"; //生成的新文件路径 String newPDFPath = "D:/updates/NewpdfTest.pdf"; PdfReader reader; FileOutputStream out; ByteArrayOutputStream bos; PdfStamper stamper; try { out = new FileOutputStream(newPDFPath);//输出流 reader = new PdfReader(templatePath);//读取pdf模板 bos = new ByteArrayOutputStream(); stamper = new PdfStamper(reader, bos); AcroFields form = stamper.getAcroFields(); String[] str = {"小证明","110","13666666666","163@qq.com", "二代身份证" ,"230*************1221"}; int i = 0; java.util.Iterator<String> it = form.getFields().keySet().iterator(); while(it.hasNext()){ String name = it.next().toString(); System.out.println(name); form.setField(name, str[i++]); } stamper.setFormFlattening(true);//如果为false那么生成的PDF文件还能编辑,一定要设为true stamper.close(); Document doc = new Document(); PdfCopy copy = new PdfCopy(doc, out); doc.open(); PdfImportedPage importPage = copy.getImportedPage( new PdfReader(bos.toByteArray()), 1); copy.addPage(importPage); doc.close(); } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } ``` 新生成的pdf文件: ![图片说明](https://img-ask.csdn.net/upload/201903/06/1551837597_251022.png)
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
深析Synchronized关键字(小白慎入,深入jvm源码,两万字长文)
目录一、synchronized基础1.1synchronized的使用1.1示例1.2验证1.2.1 普通方法和代码块中使用this是同一个监视器(锁),即某个具体调用该代码的对象1.2.2 静态方法和代码块中使用该类的class对象是同一个监视器,任何该类的对象调用该段代码时都是在争夺同一个监视器的锁定1.2、synchronized的特点二、synchronized进阶2.1对象头2.2sy
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
超全Python图像处理讲解(多图预警)
文章目录Pillow模块讲解一、Image模块1.1 、打开图片和显示图片1.2、创建一个简单的图像1.3、图像混合(1)透明度混合(2)遮罩混合1.4、图像缩放(1)按像素缩放(2)按尺寸缩放1.5、图像的剪切与粘贴(1)图像粘贴(2)裁剪图像1.4、图像旋转和格式转换(1)图像旋转(2)格式转换1.5、分离和合并(1)分离(2)合并二、ImageFilter2.1、高斯模糊2.2、其它滤镜三、...
20道你必须要背会的微服务面试题,面试一定会被问到
这篇博客总结了面试中最常见的微服务面试题,相信对你有所帮助。
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
HTTP性能极限优化
无论你在做前端、后端还是运维,HTTP都是不得不打交道的网络协议。它是最常用的应用层协议,对它的优化,既能通过降低时延带来更好的体验性,也能通过降低资源消耗带来更高的并发性。 可是,学习HTTP不久的同学,很难全面说出HTTP的所有优化点。这既有可能是你没好好准备过大厂的面试:-),也有可能你没有加入一个快速发展的项目,当产品的用户量不断翻番时,需求会倒逼着你优化HTTP协议。 这篇文章是根据...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
没用过这些 IDEA 插件?怪不得写代码头疼
使用插件,可以提高开发效率。对于开发人员很有帮助。这篇博客介绍了IDEA中最常用的一些插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
一份王者荣耀的英雄数据报告
咪哥杂谈本篇阅读时间约为 6 分钟。1前言前一阵写了关于王者的一些系列文章,从数据的获取到数据清洗,数据落地,都是为了本篇的铺垫。今天来实现一下,看看不同维度得到的结论。2环境准备本次实...
推荐一些有趣的在线编程游戏
1.Robocode 让坦克们互相博弈的游戏,你可以看到它们飞奔,碾碎一切挡道的东西。机器人配有雷达与火炮,选手在躲避对手进攻的同时攻击对手,以此来较量得分的多少。这个游戏很有意思,曾经令我沉迷… 你可以用Java、Scala、C#等编程语言,编写人工智能程序,驱动机器人。 2.Code Combat Code Combat是一款学习编程的角色扮演游戏。每一关都用任务的形式设立目标,用实时的反馈...
工作十年的数据分析师被炒,没有方向,你根本躲不过中年危机
2020年刚刚开始,就意味着离职潮高峰的到来,我身边就有不少人拿着年终奖离职了,而最让我感到意外的,是一位工作十年的数据分析师也离职了,不同于别人的主动辞职,他是被公司炒掉的。 很多人都说数据分析是个好饭碗,工作不累薪资高、入门简单又好学。然而今年34的他,却真正尝到了中年危机的滋味,平时也有不少人都会私信问我: 数据分析师也有中年危机吗?跟程序员一样是吃青春饭的吗?该怎么保证自己不被公司淘汰...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
张朝阳回应迟到 1 分钟罚 500:资本家就得剥削员工
loonggg读完需要2分钟速读仅需 1 分钟大家我,我是你们的校长。前几天,搜狐的董事局主席兼 CEO 张朝阳和搜狐都上热搜了。原因很简单,就是搜狐出了“考勤新规”。一封搜狐对员工发布...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
立即提问