java中File类中length方法的定义

新人初学java,有些问题也许有点弱智,但是问baidu总是找不到合适的答案,只好麻烦各位:
我在学习中,需要把文件里的数据按行读到一个字符串数组里,但是在定义数组长度的时候出了问题,我不知道文件的行数有多少行,这样该如何解决呢,

6个回答

 用list往里加每行数据,别定义数组
danielinbiti
danielinbiti 回复键盘手C: 不客气,如果有帮助,有时间采纳一下
大约 4 年之前 回复
u010775468
键盘手C 谢谢啊!
大约 4 年之前 回复
danielinbiti
danielinbiti 回复键盘手C: 对,这样起码自己不用管数组长度了,list自己去扩充了
大约 4 年之前 回复
u010775468
键盘手C 哦哦,谢谢,相当于就是用链表对吧,这样长度可以随意
大约 4 年之前 回复

在Java中想创建一个数组但是又不知道数组的长度,此时首先要考虑的是使用ArrayList代替数组,因为ArrayList是用数组实现的,但ArrayList的长度可以自动扩充,可以认为是动态长度的数组。标准的写法是:
List strList = new ArrayList;
strList.add(要添加的字符串);

u010775468
键盘手C 哦哦,多谢
大约 4 年之前 回复
yuxxz
xszhaobo 回复键盘手C: 这里用的是数组列表,而不是链表列表,链表列表是LinkedList
大约 4 年之前 回复
u010775468
键盘手C 谢谢
大约 4 年之前 回复
yuxxz
xszhaobo 需要加上泛型:List<String> strList = new ArrayList<String>;
大约 4 年之前 回复

可以先存到StringBuffer
char [] c = new StringBuffer().toString().toCharArray();

集合框架完美解决此问题

public class Demo {
public static void main(String[] args){
class Addition{
private T a;
private T b;
Addition(T a, T b){
this.a = a;
this.b = b;
}
public String add(){
r......
答案就在这里:java方法内是可以定义类的
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

建议使用List
List strl = new ArrayList();
strl.add("aaa");

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java,类*是公共的,应在名为*.java中声明 public class *

import javax.sound.midi.*; public class MiniMusicCmdLine{ public static void mian(String[] args){ MiniMusicCmdLine mini=new MiniMusicCmdLine(); if(args.length<2){ System.out.println("Don't forget the instrument and note args"); }else{ int instrument=Integer.parseInt(args[0]); int note=Integer.parseInt(args[1]); mini.play(instrument,note); } } public void play(int instrument,int note){ try{ Sequencer player=MidiSystem.getSequencer(); player.open(); Sequence seq=new Sequence(Sequence.PPQ,4); Track track=seq.createTrack(); MidiEvent event=null; ShortMessage first=new ShortMessage(); first.setMessage(192,1,note,100);; MidiEvent changeInstrument=new MidiEvent(first,1); track.add(changeInstrument); ShortMessage a=new ShortMessage(); first.setMessage(144,1,note,100);; MidiEvent noteOn=new MidiEvent(a,1); track.add(noteOn); ShortMessage b=new ShortMessage(); first.setMessage(128,1,note,100);; MidiEvent noteOff=new MidiEvent(b,16); track.add(noteOff); player.setSequence(seq); player.start(); }catch(Exception ex){ex.printStackTrace();} } } 看了网上的解答,觉得自己只有一个顶级的public类,文件名也没错误,不知道自己错在哪了?

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); ``` 求大神

Java局部变量全局变量递归问题

![图片说明](https://img-ask.csdn.net/upload/201612/03/1480762685_802349.png) 先说明一下 代码求的是一个文件夹的大小 _****写法1:用全局变量 不对 写法2 :用局部变量 对****_ 为什么?最好能解释的详细一点 ``` import java.io.File; import java.util.Scanner; public class Directory{ public static void main(String []args){ System.out.println("Enter a directory of file ") ; Scanner input = new Scanner (System.in); String directory = input.nextLine(); System.out.println(getSize(new File(directory)) + "bytes"); } public static long getSize(File file ){ long size = 0; if (file.isDirectory()){ File[]files = file.listFiles(); for (int i =0;files != null && i<files.length; i++) size+=getSize(files[i]); } else size +=file.length(); return size; } } ```

java中关于字符串匹配的问题,哪里出了问题

/* 需求:当前有一张关键词表和一个新闻文本 要把在文本中所包含的词表中的关键词标识出来,(在这里我用的是前后加标识符) 然后输出到另一个文本 */ import java.io.*; public class adverbSiged { static File txtFile;// 将所有路径定义为全局变量 static File advFile; static File targetFile; static String beginSign = "#"; static String endSign = "**"; adverbSiged(File txtFile, File adverbFile, File targetFile) throws Exception { this.txtFile = txtFile; this.advFile = adverbFile; this.targetFile = targetFile; get(); } public void get() throws Exception { FileInputStream fisTxt = new FileInputStream(txtFile); BufferedReader bufAdv = new BufferedReader(new FileReader(advFile)); BufferedWriter bwTar = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(targetFile), "utf-8")); // 将原文件读取至数组和txtStr中 int txtLenth = fisTxt.available(); byte[] txt = new byte[txtLenth]; fisTxt.read(txt); String txtStr = new String(txt); // 将原字符串每个字符和词汇表每个词比较 for (int i = 0; i < txtStr.length() - 1;) { String departStr = null; String line = null; boolean bool = false;//判断关键字表中是否有此关键字或词 while ((line = bufAdv.readLine()) != null) { departStr = txtStr.substring(i, i + line.length());//读取与关键字等长的子串 if (departStr.equals(line)) { bwTar.append(beginSign + line + endSign); bool = true; i = i + line.length();// 若找到此关键词,那么源字符串的角标向后移动此关键字的长度个位置 } } if (bool == false) {// 如果在整个词表都没有匹配到,那么将这一个字符输出,角标向后移一位。 bwTar.append(txtStr.subSequence(i, i + 1)); i = i + 1; } bwTar.flush(); } fisTxt.close(); bufAdv.close(); bwTar.close(); } public static void main(String[] args) throws Exception { txtFile = new File("C:\\Users\\Administrator\\Desktop\\原文本.txt"); advFile = new File("C:\\Users\\Administrator\\Desktop\\词表.txt"); targetFile = new File("C:\\Users\\Administrator\\Desktop\\目标.txt"); new adverbSiged(txtFile, advFile, targetFile); } } //程序运行后原文本直接复制到了目标文本,没有任何改变,而且文本中确实包含关键词,帮看看哪里出错了,感谢

Object类强制转换时出现java.lang.ClassCastException: elective.system.Administrator cannot be cast to elective.system.Student错误

1.进行学生的帐号注册和登录时会出现标题的错误,可是我强制转换时,并不是从Administrator转换为Student类,而是从Object类强制转换为Student类 2.这是Student类的代码 ``` package elective.system; import java.io.Serializable; /* 学生类 */ public class Student implements Serializable { private static final long serialVersionUID = 5816167009388425995L; private String number; //账号 private String passWord; //密码 public Student(String number, String passWord) { this.number = number; this.passWord = passWord; } public Student() { } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } //选择选修课程 public boolean select_class(){ return true; } //查看自己所选课程 public void look_class(){ } //查找课程 public void seek_class(){ } } ``` 这是文件读取和保存的类 ``` package elective.system; import java.io.*; import java.util.ArrayList; /* 文件操作类 */ public class OperateFile implements Serializable{ public boolean save(Object e, File file, Boolean flag2) throws Exception{ // 保存对象 boolean flag = false ; // 定义操作标志位 FileOutputStream fos = new FileOutputStream(file,flag2); //采用追加方式写入数据 if(file.length()<1){ ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(e); flag = true; oos.close(); }else{ MyObjectOutputStream mos = new MyObjectOutputStream(fos); mos.writeObject(e); flag = true; mos.close(); } return flag ; } public ArrayList load(File file) throws Exception{ // 读取对象 ArrayList<Object> list = new ArrayList(); FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); while(fis.available()>0){ Object p = ois.readObject(); list.add(p); } ois.close(); return list; } } class MyObjectOutputStream extends ObjectOutputStream{ public MyObjectOutputStream(OutputStream out) throws IOException { super(out); } public void writeStreamHeader() throws IOException{ return; } } ``` 这是注册和登录的方法 ``` public boolean enter2(String number, String passWord,String pathName) throws Exception { File file = new File(pathName); OperateFile operateFile = new OperateFile(); ArrayList<Object> list = operateFile.load(file); for (Object ot:list) { Student ar = (Student) ot; if(ar.getNumber().equals(number)&&ar.getPassWord().equals(passWord)){ return true; } } return false; } public boolean sign2(String number,String passWord,String pathName) throws Exception { File file = new File(pathName); OperateFile operateFile = new OperateFile(); ArrayList<Object> list = operateFile.load(file); for(Object ot : list){ Student ar = (Student) ot; if(ar.getNumber().equals(number)){ return false; } } Object ar = new Student(number, passWord); operateFile.save(ar,file,true); return true; } ``` 请问大佬们这到底是为什么啊

"main" java.lang.NullPointerException

//四、用Java实现掷骰子游戏:丢下两个骰子,若分值的总值为7点,则赢;否则输。 //编写步骤如下: //(1)首先定义Dice类。 //提示:Dice类表示一个骰子有faceValue一个属性,为整型; //有一个roll()方法和getFaceValue()。 //roll()方法功能使faceValue属性设置为1~6中的一个随机值,没有返回值。 //getFaceValue()方法功能为取出faceValue值。 //Math.random()方法是求随机数,返回值为double类型,值的范围为0.0~1.0 //(2)然后定义DiceGame类。 //提示:DiceGame类有dice1、dice2两个属性,类型分别为Dice类类型,有一个play()方法。 //play()方法返回一个布尔类型,true表示丢下两个骰子分值的总值为7点,否则为false。 //(3)最后编写一个测试类Test,对上面定义的类进行测试。 //提示: main()方法中产生DiceGame对象,执行play()方法后显示出输赢。 class Dice{ private int faceValue; public void roll(){ faceValue=(int)(6*Math.random()); } public int getFaceValue(){ return faceValue; } } class DiceGame extends Dice{ private Dice dice1; private Dice dice2; public boolean play(){ dice1.roll(); dice2.roll(); if(dice1.getFaceValue()+dice2.getFaceValue()==7){ System.out.println("赢了!"); return true; } else { System.out.println("输了!"); return false; } } } public class Test{ public static void main(String[] args){ DiceGame one=new DiceGame(); one.play(); } } 请问大神错在哪? 错在27和42行

java代码运行出现错误“Address already in use: Cannot bind”

这是数据接受端代码: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class ReceiveUDP { public static void main(String[] args) throws IOException { //定义Socket,并开放一个端口,用来接受数据 int port=10000; DatagramSocket ds = new DatagramSocket(port); //定义一个数据缓冲池,用来存放接收到的数据 byte bytes[] = new byte[1024]; DatagramPacket dp = new DatagramPacket(bytes,bytes.length); //用Receive方法将接收的内容放入数据缓冲池 ds.receive(dp); System.out.println(dp.getPort()+":"); System.out.println(new String(dp.getData())); ds.close(); } } 这是发送数据端代码: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; public class UDPSend { public static void main(String[] args) throws IOException { DatagramSocket ds = new DatagramSocket(10000,InetAddress.getByName("127.0.0.1")); byte bytes[] = "hello,UDP".getBytes(); DatagramPacket dp = new DatagramPacket(bytes,bytes.length); //发送数据 ds.send(dp); System.out.println("sent!"); ds.close(); } } 运行后出现问题: Exception in thread "main" java.net.BindException: Address already in use: Cannot bind at java.net.DualStackPlainDatagramSocketImpl.socketBind(Native Method) at java.net.DualStackPlainDatagramSocketImpl.bind0(Unknown Source) at java.net.AbstractPlainDatagramSocketImpl.bind(Unknown Source) at java.net.DatagramSocket.bind(Unknown Source) at java.net.DatagramSocket.<init>(Unknown Source) at java.net.DatagramSocket.<init>(Unknown Source) at UDPSend.main(UDPSend.java:11) 请各位大神帮忙看看是什么问题,怎么解决?

java在自定义事件监听器是遇到的问题

import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Queue; import java.util.*; import java.awt.*; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import static java.awt.BorderLayout.*; public class FileSearcher { public static void findFiles(String baseDirName, String targetFileName, List fileList) { String tempName=null; File baseDir=new File(baseDirName); if(!baseDir.exists()||!baseDir.isDirectory()) { System.out.println("文件查找失败"+baseDirName+"不是一个目录"); } else { String[] filelist=baseDir.list(); for(int i=0;i<filelist.length;i++) { File readfile=new File(baseDirName+"\\"+filelist[i]); if(!readfile.isDirectory()) { tempName=readfile.getName(); if(FileSearcher.wildcardMatch(targetFileName, tempName)) { fileList.add(readfile.getAbsoluteFile()); } } else if(readfile.isDirectory()) { findFiles(baseDirName+"\\"+filelist[i],targetFileName,fileList); } } } } private static boolean wildcardMatch(String pattern ,String str) { int patternLength=pattern.length(); int strLength=str.length(); int strIndex=0; char ch; for(int patternIndex=0;patternIndex < patternLength; patternIndex++) { ch=pattern.charAt(patternIndex); if(ch=='*') { while(strIndex<strLength) { if(wildcardMatch(pattern.substring(patternIndex + 1),str.substring(strIndex))) { return true; } strIndex++; } } else if(ch=='?') { strIndex++; if(strIndex>strLength) { return false; } } else { if(strIndex>=strLength||(ch!=str.charAt(strIndex))) { return false; } strIndex++; } } return (strIndex==strLength); } public void init() { JFrame jf=new JFrame(); JPanel jp=new JPanel(); TextArea jta=new TextArea(20,30); JTextField jtf=new JTextField(10); JTextField jtf1=new JTextField(10); JButton jb=new JButton("搜索"); jp.add(jtf); jp.add(jtf1); jp.add(jb); jf.setLayout(new BorderLayout()); jf.add(jta,SOUTH); jf.add(jp,NORTH); jf.pack(); jf.setVisible(true); myListener Listener=new myListener(this); jtf1.addActionListener(Listener); jb.addActionListener(Listener); } public static void main(String[] args) { new FileSearcher().init(); } } class myListener implements ActionListener { public void actionPerformed(ActionEvent e) { jta.setText(""); String baseDIR=jtf.getText(); String fileName=jtf1.getText(); List resultList=new ArrayList(); FileSearcher.findFiles(baseDIR,fileName,resultList); if(resultList.size()==0) { System.out.println("worng"); } else { for(int i=0;i<resultList.size();i++) { jta.append(resultList.get(i).toString()+"\r\n"); System.out.println(resultList.get(i)); } } } } 错误提示 ---------- 编译java ---------- FileSearcher.java:97: 错误: 无法将类 myListener中的构造器 myListener应用到给定类型; myListener Listener=new myListener(this); ^ 需要: 没有参数 找到: FileSearcher 原因: 实际参数列表和形式参数列表长度不同 FileSearcher.java:114: 错误: 找不到符号 jta.setText(""); ^ 符号: 变量 jta 位置: 类 myListener FileSearcher.java:115: 错误: 找不到符号 String baseDIR=jtf.getText(); ^ 符号: 变量 jtf 位置: 类 myListener FileSearcher.java:116: 错误: 找不到符号 String fileName=jtf1.getText(); ^ 符号: 变量 jtf1 位置: 类 myListener FileSearcher.java:128: 错误: 找不到符号 jta.append(resultList.get(i).toString()+"\r\n"); ^ 符号: 变量 jta 位置: 类 myListener 注: FileSearcher.java使用了未经检查或不安全的操作。 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 5 个错误 输出完成 (耗时 1 秒) - 正常终止

新手求教,关于java压缩文件的问题

import java.io.*; import java.util.zip.*; public class Myzip { private void zip(ZipOutputStream out,File f,String base) throws Exception{ if(f.isDirectory()){ File f1[]=f.listFiles(); out.putNextEntry(new ZipEntry(base+"/")); base=base.length()==0?"":base+"/"; for(int i=0;i<f1.length;i++){ zip(out,f1[i],base+f1[i]); } }else{ out.putNextEntry(new ZipEntry(base)); FileInputStream in=new FileInputStream(f); System.out.println(base); int b; while((b=in.read())!=-1){ out.write(b); } in.close(); } } public static void main(String[] args) { // TODO Auto-generated method stub try{ Myzip z=new Myzip(); ZipOutputStream out=new ZipOutputStream(new FileOutputStream("hello.zip")); z.zip(out,new File("hello"),""); System.out.println("压缩完成"); }catch(Exception e){ } } } 这个程序为什么不能实现压缩文件? 另外, out.putNextEntry(new ZipEntry(base+"/")); base=base.length()==0?"":base+"/"; 这两句是啥意思啊。。 base的作用是? 新手求教大神!非常感谢 附上书里的源代码: import java.io.*; import java.util.zip.*; public class MyZip { // 创建类 private void zip(String zipFileName, File inputFile) throws Exception { ZipOutputStream out = new ZipOutputStream(new FileOutputStream( zipFileName)); // 创建ZipOutputStream类对象 zip(out, inputFile, ""); // 调用方法 System.out.println("压缩中…"); // 输出信息 out.close(); // 将流关闭 } private void zip(ZipOutputStream out, File f, String base) throws Exception { // 方法重载 if (f.isDirectory()) { // 测试此抽象路径名表示的文件是否是一个目录 File[] fl = f.listFiles(); // 获取路径数组 out.putNextEntry(new ZipEntry(base + "/")); // 写入此目录的entry base = base.length() == 0 ? "" : base + "/"; // 判断参数是否为空 for (int i = 0; i < fl.length; i++) { // 循环遍历数组中文件 zip(out, fl[i], base + fl[i]); } } else { out.putNextEntry(new ZipEntry(base)); // 创建新的进入点 // 创建FileInputStream对象 FileInputStream in = new FileInputStream(f); int b; // 定义int型变量 System.out.println(base); while ((b = in.read()) != -1) { // 如果没有到达流的尾部 out.write(b); // 将字节写入当前ZIP条目 } in.close(); // 关闭流 } } public static void main(String[] temp) { // 主方法 MyZip book = new MyZip(); // 创建本例对象 try { // 调用方法,参数为压缩后文件与要压缩文件 book.zip("hello.zip", new File("src")); System.out.println("压缩完成"); // 输出信息 } catch (Exception ex) { ex.printStackTrace(); } } }

if语句满足了但没有运行,在for循环中已经满足了循环条件,百度说上是循环里变量定义问题,然后我将循环统一改成了j,但还是有问题

if的条件已经满足了,然后我打印出一个6,表示有数组进入,但是却没有进入for 循环中,存储(3,() )的循环代码和存储(3,{} )的循环代码是一样的, 但却没有打印出花括号的,麻烦帮助一下xiao'bai package by.com; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class Realize { public static File f = new File("test.txt"); public static int syn = 0; // public static String bss = ""; public void judge() { Map<String, Integer> map = new HashMap<String, Integer>(); try { // 读文件 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f)); byte[] bs = new byte[bis.available()]; bis.read(bs); bss = new String(bs); System.out.println(bss); bis.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String str1 = bss.toString(); // System.out.println( str1 ); String[] str2 = str1.split(" "); // BUG:以空格分割可能将非保留字的字段分割在一起 // for (String string : str2) { // System.out.println( string ); // } // System.out.println( length ); int i; for (i = 0; i < str2.length; i++) { // 判断整常数 if ("1".equals(str2[i]) || "0".equals(str2[i]) || "2".equals(str2[i]) || "3".equals(str2[i]) || "4".equals(str2[i]) || "5".equals(str2[i]) || "6".equals(str2[i]) || "7".equals(str2[i]) || "8".equals(str2[i]) || "9".equals(str2[i])) { map.put(str2[i], 1); } // 判断保留字 if ("public".equals(str2[i]) || "class".equals(str2[i]) || "void".equals(str2[i]) || "for".equals(str2[i]) || "String".equals(str2[i]) || "private".equals(str2[i]) || "new".equals(str2[i])) { map.put(str2[i], 2); } // 判断分隔符 int j=0; if ("(".equals(str2[i])) { for (j = i + 1; j < str2[0].length(); j++) { boolean a=false; if (a==(")".equals(str2[j]))) { // System.out.println(" 括号丢失 "); break; } else { map.put("()", 3); } }j=0; } if ("{".equals(str2[i])) { System.out.println( i ); for ( j = i + 1; j < str2[0].length(); j++) { System.out.println( j ); boolean z=true; if (z== ("}".equals(str2[j]) ) ) { map.put("{}", 3); } else { break; } } } j=0; if ("[".equals(str2[i])) { for (j = i + 1; j < str2[0].length(); j++) { boolean a=true; if (a=="]".equals(str2[j])) { map.put("[]", 3); } else { break; } } } j=0; if (";".equals(str2[i])) { map.put(";", 3); } // 判断注释 if ("/".equals(str2[i])) { for (j = i + 1; j < str2[0].length(); j++) { if (!("/".equals(str2[j]))) { System.out.println(" 注释符错误"); } else { map.put("//", 3); break; } } } j=0; } Set<String> keys = map.keySet(); Iterator<String> iterator = keys.iterator(); // 迭代器 while (iterator.hasNext()) { String key = iterator.next(); int value = map.get(key); System.out.println("( " + value + "," + key + " )"); } } } 后面是main函数 package by.com; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class CFAnalyze { public static void main(String[] args) { Realize r=new Realize(); r.judge(); } }

读取文件内容出现java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: elective.system.Elective错误

1.在读取文件中的内容时出现标题错误,Elective类已经继承Serializable接口 ```package elective.system; import java.io.File; import java.io.Serializable; import java.util.ArrayList; /* 选修课程类 */ public class Elective implements Serializable { private int class_num; //选修课程编号 private String class_nature; //课程类别 private String class_name; //选修课名称 private String class_teacher; //课程教师 private int class_credit; //课程学分 private String class_time; //课程起止周 private String class_daily_time; //课程日常上课时间 private String class_school; //课程承办的二级学院 private int class_person_num; //课程人数 private String class_note; //课程备注 //无参构造方法 public Elective() { } //有参构造方法 public Elective(int class_num, String class_nature, String class_name, String class_teacher, int class_credit, String class_time, String class_daily_time, String class_school, int class_person_num, String class_note) { this.class_num = class_num; this.class_nature = class_nature; this.class_name = class_name; this.class_teacher = class_teacher; this.class_credit = class_credit; this.class_time = class_time; this.class_daily_time = class_daily_time; this.class_school = class_school; this.class_person_num = class_person_num; this.class_note = class_note; } //getter和setter方法 public int getClass_person_num() { return class_person_num; } public void setClass_person_num(int class_person_num) { this.class_person_num = class_person_num; } public int getClass_num() { return class_num; } public void setClass_num(int class_num) { this.class_num = class_num; } public String getClass_name() { return class_name; } public void setClass_name(String class_name) { this.class_name = class_name; } public String getClass_teacher() { return class_teacher; } public void setClass_teacher(String class_teacher) { this.class_teacher = class_teacher; } public int getClass_credit() { return class_credit; } public void setClass_credit(int class_credit) { this.class_credit = class_credit; } public String getClass_time() { return class_time; } public void setClass_time(String class_time) { this.class_time = class_time; } public String getClass_daily_time() { return class_daily_time; } public void setClass_daily_time(String class_daily_time) { this.class_daily_time = class_daily_time; } public String getClass_nature() { return class_nature; } public void setClass_nature(String class_nature) { this.class_nature = class_nature; } public String getClass_note() { return class_note; } public void setClass_note(String class_note) { this.class_note = class_note; } public String getClass_school() { return class_school; } public void setClass_school(String class_school) { this.class_school = class_school; } //增加选修课程 public boolean add_class(Elective elective){ boolean flag = false; File file = new File("D:\\IdeaProjects\\basic-code\\01-code\\选修课程表\\class.txt"); OperateFile operateFile = new OperateFile(); try{ operateFile.save(elective,file); flag = true; }catch (Exception e){ e.printStackTrace(); } return flag; } //查看已有选修课程 public ArrayList<Elective> look_class(){ ArrayList<Elective> list = new ArrayList<>(); File file = new File("D:\\IdeaProjects\\basic-code\\01-code\\选修课程表\\class.txt"); OperateFile operateFile = new OperateFile(); try{ list = operateFile.load(file); }catch (Exception e){ e.printStackTrace(); } return list; } @Override public String toString() { return "课程编号:" + class_num + ", 课程类别:" + class_nature + ", 课程名称:" + class_name + ", 授课教师:" + class_teacher + ", 学分:" + class_credit + ", 课程起止周:" + class_time + ", 课程上课时间:" + class_daily_time + ", 课程承办学院:" + class_school+ ", 课程备注:" + class_note; } } 这是文件保存和读取类 ``` package elective.system; import java.io.*; import java.util.ArrayList; /* 文件操作类 */ public class OperateFile implements Serializable{ public boolean save(Object e,File file) throws Exception{ // 保存对象 boolean flag = false ; // 定义操作标志位 FileOutputStream fos = new FileOutputStream(file,true); //采用追加方式写入数据 if(file.length()<1){ ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(e); flag = true; oos.close(); }else{ MyObjectOutputStream mos = new MyObjectOutputStream(fos); mos.writeObject(e); flag = true; mos.close(); } return flag ; } public ArrayList load(File file) throws Exception{ // 读取对象 ArrayList<Object> list = new ArrayList(); FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); while(fis.available()>0){ Object p = ois.readObject(); list.add(p); } ois.close(); return list; } } class MyObjectOutputStream extends ObjectOutputStream{ public MyObjectOutputStream(OutputStream out) throws IOException { super(out); } public void writeStreamHeader() throws IOException{ return; } } ``` 这是操作: Elective elective = new Elective(); ArrayList<Elective> list = elective.look_class(); for(Elective et : list){ System.out.println(et.toString()); } ``` 请问各位大佬这是为什么呢?

java 为什么Dialog中的Label不显示?

为什么 在Dialog中add 一个Lable,但运行的时候并没有显示? 求大神 import java.awt.Button; import java.awt.Dialog; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; public class MyFrame { private Frame frame ; private Button butCount; private Button butClear; private TextField tf ; private TextArea ta ; private TextField answer; public void init() { //定义组建 frame = new Frame("统计代码行数软件--by Owen"); butCount = new Button("统计"); butClear = new Button("结果清零"); tf = new TextField("请输入要计算的文件夹路径" , 60); tf.selectAll(); //设置将初始的"请输入要计算的文件夹路径"全选 ta = new TextArea(25 , 75); answer = new TextField(40); //向面板添加组建 frame.add(tf); frame.add(butCount); frame.add(butClear); frame.add(ta); frame.add(answer); //设置面板 frame.setVisible(true); frame.setBounds(300,100,630,500); frame.setLayout(new FlowLayout()); //引入事件 eventFrame(); eventButton(); eventText(); } //窗体事件 public void eventFrame() { //添加面板监听器 frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0); } }); } //按钮事件 public void eventButton() { //添加butCount监听器 butCount.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { action(); } }); //添加butClear监听器 butClear.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { Print.count = 0; ta.setText(""); tf.setText(""); answer.setText(""); } }); } //文本事件 public void eventText() { tf.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_ENTER) action(); } }); } //操作部分 private void action() { String address = tf.getText(); //健壮性检验 File check = new File(address); if( !(check.exists() && check.isDirectory() )) popDialog(address); String[] files = Print.traDir(address); for(int i=0 ; i<files.length ; i++) { ta.append(files[i]); } ta.append("\r\n"); ta.append("\r\n"); ta.append("----------------------------------------------"); ta.append("\r\n"); ta.append("\r\n"); int count = Print.count; answer.setText("结果: "+count+" 行代码"); } //弹出对话框------------------这里没有弹出------------------????????????????????? private void popDialog(String address) { //定义弹出窗口口 Dialog wrongDialog = new Dialog(frame,"地址错误提示", false); Label wrongLabel = new Label(); Button wrongButton = new Button("确定"); wrongDialog.add(wrongLabel); wrongDialog.add(wrongButton); wrongDialog.setBounds(320 , 250 , 600 , 150); wrongDialog.setLayout(new FlowLayout()); wrongDialog.setVisible(true); String info = "输入地址 \" "+address+" \"有误,请重新输入"; wrongLabel.setText(info); popEvent(wrongDialog ,wrongLabel ,wrongButton); } //弹出对话框 --监听器 private void popEvent(Dialog wrongDialog ,Label wrongLabel ,Button wrongButton) { wrongDialog.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { wrongDialog.setVisible(false); } }); wrongButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { wrongDialog.setVisible(false); } }); } }

Java for-each访问List集合显示错误: for-each 不适用于表达式类型

class ImageDropTargetListener extends DropTargetAdapter //这是内部类,有些变量已经定义好了 { public void drop(DropTargetDropEvent e) { e.acceptDrop(DnDConstants.ACTION_COPY); Transferable transfer = e.getTransferable(); DataFlavor[] flavor = transfer.getTransferDataFlavors(); for(int i=0; i<flavor.length; i++) { DataFlavor d = flavor[i]; try { if(d.equals(DataFlavor.javaFileListFlavor)) { List fileList = (List)transfer.getTransferData(d); for (Object obj : fileList) //问题报错在这 { showImage((File)obj, e); //已经定义好的方法 } } } catch (Exception event) { event.printStackTrace(); } e.dropComplete(true); } } } 错误: for-each 不适用于表达式类型 for (Object obj : fileList) ^ 要求: 数组或 java.lang.Iterable 找到: List 哪位大神教一下,为什么会错…… 难道是下面这句有问题??? List fileList = (List)transfer.getTransferData(d);

java程序功能设计分析和程序基本组成框架结构 大神们帮帮忙

package com.mingrisoft.ballot; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.*; class Candidate extends JCheckBox { // 定义内容类,该类继承JCheckBox类 int len = 0; Candidate(String name, Icon icon) { // 该类包含有两个参数 super(name, icon); } public int getBallot(String name) { File file = new File("C://count.txt"); // 创建文件对象 FileReader fis; try { if (!file.exists()) // 如果该文件不存在 file.createNewFile(); // 新建文件 fis = new FileReader(file); BufferedReader bis = new BufferedReader(fis); // 创建BufferedReader对象 String str[] = new String[3]; String size; int i = 0; while ((size = bis.readLine()) != null) { // 循环读取文件内容 str[i] = size.trim(); // 去除字符串中的空格 if (str[i].startsWith(name)) { int length = str[i].indexOf(":"); String sub = str[i].substring(length + 1, str[i].length()); // 对字符串进行截取 len = Integer.parseInt(sub); continue; } i++; } } catch (Exception e) { e.printStackTrace(); } return len; } public void addBallot(String name) { // 定义增加选票方法 File file = new File("C://count.txt"); // 创建文件对象 FileReader fis; try { if (!file.exists()) // 如果该文件不存在 file.createNewFile(); // 新建文件 fis = new FileReader(file); // 对FileReader对象进行实例化 BufferedReader bis = new BufferedReader(fis); String str[] = new String[3]; String size; int i = 0; while ((size = bis.readLine()) != null) { // 循环读取文件 str[i] = size.trim(); if (str[i].startsWith(name)) { int length = str[i].indexOf(":"); // 获取指定字符索引位置 String sub = str[i].substring(length + 1, str[i].length()); // 对字符串进行截取 len = Integer.parseInt(sub) + 1; break; } i++; } FileWriter fw = new FileWriter(file); // 创建FileWriter 对象 BufferedWriter bufw = new BufferedWriter(fw); bufw.write(name + ":" + len); // 向流中写数据 bufw.close(); // 关闭流 fw.close(); } catch (Exception e) { e.printStackTrace(); } } } class MyMin extends JFrame implements ActionListener { Box baseBox, boxH, boxV; // 创建Box对象 JTextArea text; // 创建JTextArea对象 JButton button; // 创建JButton对象 Candidate candidateOne, candidateTwo, candidateThree; public MyMin() { // 在构造方法中设置窗体布局 setBounds(100, 100, 500, 120); setVisible(true); setTitle("选出你心中的好干部!!"); addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // 窗体关闭事件 System.exit(0); } }); baseBox = Box.createHorizontalBox(); boxH = Box.createHorizontalBox(); boxV = Box.createHorizontalBox(); candidateOne = new Candidate("小兵", new ImageIcon(getClass() .getResource("0.gif"))); candidateTwo = new Candidate("小陈", new ImageIcon(getClass() .getResource("1.gif"))); candidateThree = new Candidate("小李", new ImageIcon(getClass() .getResource("2.gif"))); candidateOne.setSelectedIcon(new ImageIcon(getClass().getResource( "0.gif"))); candidateTwo.setSelectedIcon(new ImageIcon(getClass().getResource( "1.gif"))); candidateThree.setSelectedIcon(new ImageIcon(getClass().getResource( "2.gif"))); boxH.add(candidateOne); boxH.add(candidateTwo); boxH.add(candidateThree); text = new JTextArea(); button = new JButton("显示得票数"); button.addActionListener(this); boxV.add(text); boxV.add(button); boxV.add(boxH); baseBox.add(boxV); Container con = getContentPane(); con.setLayout(new FlowLayout()); con.add(baseBox); con.validate(); } @Override public void actionPerformed(ActionEvent e) { text.setText(null); File file = new File("C://count.txt"); // 创建文件对象 if (!file.exists()) { // 如果该文件不存在 try { file.createNewFile(); // 新建文件 } catch (IOException e1) { e1.printStackTrace(); } } if (candidateOne.isSelected()) { candidateOne.addBallot(candidateOne.getText()); } if (candidateTwo.isSelected()) { candidateTwo.addBallot(candidateTwo.getText()); } if (candidateThree.isSelected()) { candidateThree.addBallot(candidateThree.getText()); } text.append(candidateOne.getText() + ":" + candidateOne.getBallot(candidateOne.getText()) + "\n"); // 向文本框中追加信息 text.append(candidateTwo.getText() + ":" + candidateTwo.getBallot(candidateTwo.getText()) + "\n"); text.append(candidateThree.getText() + ":" + candidateThree.getBallot(candidateThree.getText()) + "\n"); try { if (!file.exists()) { file.createNewFile(); } FileWriter fw = new FileWriter(file); // 创建FileWriter类对象 BufferedWriter bufw = new BufferedWriter(fw); // 创建BufferedWriter类对象 bufw.write(text.getText()); // 将字符串数组中元素写入到磁盘文件中 bufw.close(); // 将BufferedWriter流关闭 fw.close(); } catch (IOException e1) { e1.printStackTrace(); } candidateOne.setSelected(false); candidateTwo.setSelected(false); candidateThree.setSelected(false); } } public class Ballot { public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } new MyMin(); } }

从 url 中下载文件时的错误

我想从url中读取一个文件,然后定义它为一个File Type public File fileFromUrl(String str) throws IOException { File file = new File ("image.png"); URL url = new URL (str); InputStream input = url.openConnection().getInputStream(); try { OutputStream output = new FileOutputStream (file); try { byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) { output.write(buffer, 0, bytesRead); } } finally { output.close(); } } finally { input.close(); } return file; } 但是代码在`OutputStream output = new FileOutputStream (file);` 处出错了。 请问如何定义 URl 中的文件?

一个Java小程序,复制文件的,有界面,为何运行没反应?没报错

程序分为界面和功能两个类,代码较长,我做了必要注释,请耐心看完,请大神指出运行没反应的原因(尽量不要写新代码给我,在原代码上修正,便于我理解) 实在没积分了,无法悬赏 界面部分 ``` /* * 界面 * @version 1.0 * 主要功能: 将查找目录内(含子目录)的指定后缀名文件复制到输出目录 */ package check; import java.io.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class appearance { static File OldPath=null; //定义文件对象 static File NewPath=null; static String LastName=null; //定义后缀名对象 static int x=0; //用于对话框判断 public static void main(String[] args){ Frame f=new Frame("文件查找"); Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel(); Label la1=new Label("查找目录:"); Label la2=new Label("输出目录:"); Label la3=new Label("后缀名:"); TextField t1=new TextField(50); TextField t2=new TextField(50); TextField t3=new TextField(20); Button b1=new Button("浏览"); Button b2=new Button("浏览"); Button b3=new Button("确定"); JFileChooser choose1=new JFileChooser(); JFileChooser choose2=new JFileChooser(); choose1.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); choose2.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); t1.setEditable(false); t2.setEditable(false); f.setBounds(200,150,520,200); p1.setLayout(new FlowLayout()); p2.setLayout(new FlowLayout()); p3.setLayout(new FlowLayout()); f.setLayout(new BorderLayout()); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ f.setVisible(false); System.exit(0); } }); b1.addActionListener(new ActionListener(){ //按钮监听(文件选择器) public void actionPerformed(ActionEvent arg0) { choose1.showDialog(new JLabel(),"选择文件夹"); OldPath=choose1.getSelectedFile(); t1.setText(OldPath.getAbsolutePath()); } }); b2.addActionListener(new ActionListener(){ //按钮监听(文件选择器) public void actionPerformed(ActionEvent arg){ choose2.showDialog(new JLabel(),"选择文件夹"); NewPath=choose2.getSelectedFile(); t2.setText(NewPath.getAbsolutePath()); } }); b3.addActionListener(new ActionListener(){ //按钮监听(调用功能模块) public void actionPerformed(ActionEvent arg1){ LastName=t3.getText(); if(t1.getText().trim().length()<1||t2.getText().trim().length()<1||t3.getText().trim().length()<1){//对话框处理 x=JOptionPane.showConfirmDialog(f,"请输入完整","提示",JOptionPane.OK_CANCEL_OPTION,JOptionPane.ERROR_MESSAGE); if(x==JOptionPane.OK_OPTION) System.exit(0); } Function.cheek(OldPath, NewPath); //调用功能方法,传递文件对象参数 } }); f.add(p1,"North"); //添加组件 f.add(p2,"Center"); f.add(p3,"South"); p1.add(la1); p1.add(t1); p1.add(b1); p2.add(la2); p2.add(t2); p2.add(b2); p2.add(la3); p2.add(t3); p3.add(b3); f.setVisible(true); } } ``` 功能部分 ``` /* * 功能 * @version 1.0 */ package check; import java.io.*; class Function { static BufferedInputStream bis=null; //文件输入输出流,用于复制文件 static BufferedOutputStream bos=null; public static void cheek(File OldPath,File NewPath){ //功能方法 接受界面传值 if(!NewPath.exists()){ NewPath.mkdir(); } ergodic(OldPath,NewPath); //递归,扫描子目录内所有文件 } private static void ergodic(File oldPath, File newPath) { File[] files=oldPath.listFiles(); for(File f:files){ if(f.isDirectory()){ ergodic(f,newPath); } if(f.getName().endsWith(appearance.LastName)){ copy(f,newPath); //文件复制, } } } private static void copy(File f, File newPath) { //文件复制 String Name=newPath.getName(); File newfile=new File(f,Name); try{ bis=new BufferedInputStream(new FileInputStream(f)); bos=new BufferedOutputStream(new FileOutputStream(newfile)); byte[] by=new byte[1024]; int len=0; while((len=bis.read(by))!=-1){ bos.write(by,0,len); } bos.close(); bis.close(); }catch(IOException e){ } } } ```

遍历指定盘符下所有文件

import java.io.File; /** * @author * *尝试遍历每个文件夹,并列出所有内容 *分析: * 1.获取文件件对象 * 2.判断是否为文件夹 * 3.是 继续判断 是否为文件夹 * 4.否,则打印所有文件的文件名 *使用遍历 */ public class BianliWenjianjia { public static void main(String []args){ // File file=new File("E:\\inst\\3-图形图像\\素材2011\\eclipse"); File file=new File("F:\\"); file(file,0); } public static void file( File file,int i) { //创建文件对象,指定根目录 System.out.println(getSpace(i)+file.getName()); //定义一个变量用于记录目录层次 i++; //获取文件对象 File [] fileArr=file.listFiles(); for(int index=0;index<fileArr.length;index++) // for(File fileCon:fileArr) {//遍历 if(fileArr[index].isDirectory()) // if(fileCon.isDirectory()) { file(fileArr[index],i); // file(fileCon,i); } else { System.out.println(getSpace(i)+fileArr[index].getName()); // System.out.println(getSpace(i)+fileCon.getName()); } } if(file.getParentFile()==file) return ; } /** * @param i 目录层次 * @return 空格字符 */ private static String getSpace(int i) { StringBuffer sb=new StringBuffer(); sb.append("|--"); for(int a=0;a<i;a++) { sb.insert(0,"| "); } return sb.toString(); } } 在这个程序中若指定具体某个文件夹就可以成功遍历,但是指定具体盘符时就会报java.lang.NullPointerException,本人开始以为是系统权限问题,以管理员权限运行也出现同样的错误,所以向各位前辈请教!请帮忙分析下这是什么原因!学生在此谢过了!

JAVA比较两个字符串是否相等上的一些问题

贴出我的代码求解决一下。。一点小问题 File file = new File(path); try { InputStreamReader read = new InputStreamReader(new FileInputStream(file)); BufferedReader bufferedReader = new BufferedReader(read); String lineTXT = null; String[] s3 = null; while ((lineTXT = bufferedReader.readLine()) != null) { System.out.println(lineTXT); s3 = lineTXT.split(","); } for (int i = 0; i < s3.length; i++) { int count = i + 1; if (s3[i] != s2[i]) { { System.out.println("第" + count + "个位置的值不同,值为" + s3[i]); } } } read.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } ``` ``` 读取了文件的内容放在s3数组里里面然我我定义了一个 String[] s2 = {"124453", "258", "98", "123"};放我比较的时候如果条件写成i < s2.length 就可以正常运行但只能比较出前四项,引文两个数组长度不一样s3数组里面的内容比s数组里面的内容要多,把条件改成i < s2.length,结果比较出前四项之后报错ArrayIndexOutOfBoundsException: length=4; index=4,请问在我代码的基础上要怎么修改才能解决这个问题呢?比较两个长度不相等的数组~~~~

求助,java在上传文档的时候出现NullPointerException

org.hibernate.PropertyAccessException: NullPointerException occurred while calling setter of com.model.Job.hwfile org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:78) org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValue(AbstractEntityTuplizer.java:720) org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValue(AbstractEntityPersister.java:4948) com.base.dao.impl.BaseDaoImpl.updates(BaseDaoImpl.java:101) com.service.impl.BaseServiceImpl.updates(BaseServiceImpl.java:36) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:497) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) com.sun.proxy.$Proxy30.updates(Unknown Source) com.action.JobAction.updateDoc(JobAction.java:236) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:497) com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450) com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:325) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:161) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) com.filter.MyStrutsFilter.doFilter(MyStrutsFilter.java:25) com.filter.SystemContextFilter.doFilter(SystemContextFilter.java:40) org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:149) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) 原代码: Action类 public String updateDoc() throws IOException { if (file != null) { ActionContext ac = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST); String root = request.getRealPath("/upload"); InputStream is = new FileInputStream(file); String f = fileFileName; f = UUIDUtils.create() + fileFileName; OutputStream os = new FileOutputStream(new File(root, f)); byte[] buffer = new byte[500]; int length = 0; while (-1 != (length = is.read(buffer, 0, buffer.length))) { os.write(buffer); } os.close(); is.close(); job.setHwfile("\\upload\\" + f); } jobService.updates(job);//显示这一行出错 ActionContext.getContext().put("url", "job_dataList.do"); return "redirect"; } BaseDaoImpl.java public T updates(T bean) { // 取得元数据 ClassMetadata cm = sessionFactory.getClassMetadata(getClz()); // 取得主键名称 String identifierName = cm.getIdentifierPropertyName(); // 反射取得主键值 Integer id = (Integer) getSimpleProperty(bean, identifierName); // 取得数据库中的对象 T po = findById(id); // 取得所有属性 String[] propNames = cm.getPropertyNames(); // 定义存储新值 Object newValue; for (String propName : propNames) { // 如果是主键就跳过 if (propName.equals(identifierName)) { continue; } // 反射取得新值 newValue = getSimpleProperty(bean, propName); if (newValue != null) { // 设置新值 cm.setPropertyValue(po, propName, newValue);//显示这一行出错 } } return po; } BaseServiceImpl.java: public void updates(T entity) { dao.updates(entity);//显示这一行出错 } Job实体类: private String hwfile; public String getHwfile() { return hwfile; } public void setHwfile(String hwfile) { this.hwfile = hwfile; }

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

课程主要面向嵌入式Linux初学者、工程师、学生 主要从一下几方面进行讲解: 1.linux学习路线、基本命令、高级命令 2.shell、vi及vim入门讲解 3.软件安装下载、NFS、Samba、FTP等服务器配置及使用

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

Python数据分析与挖掘

92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元 &nbsp; 为什么学习数据分析? &nbsp; &nbsp; &nbsp; 人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。 &nbsp; &nbsp; &nbsp; 从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。 &nbsp;&nbsp; 本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。 &nbsp; 二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。 &nbsp; 三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。 &nbsp; 四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。 &nbsp; 五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。

如何在虚拟机VM上使用串口

在系统内核开发中,经常会用到串口调试,利用VMware的Virtual Machine更是为调试系统内核如虎添翼。那么怎么搭建串口调试环境呢?因为最近工作涉及到这方面,利用强大的google搜索和自己

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

北京师范大学信息科学与技术学院笔试10复试真题

北京师范大学信息科学与技术学院笔试,可以更好的让你了解北师大该学院的复试内容,获得更好的成绩。

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

本课程适合CCNA或HCNA网络小白同志,高手请绕道,可以直接学习进价课程。通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库网络上很容易下载到。

Python界面版学生管理系统

前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

Tomcat服务器下载、安装、配置环境变量教程(超详细)

未经我的允许,请不要转载我的文章,在此郑重声明!!! 请先配置安装好Java的环境,若没有安装,请参照我博客上的步骤进行安装! 安装Java环境教程https://blog.csdn.net/qq_40881680/article/details/83585542 Tomcat部署Web项目(一)·内嵌https://blog.csdn.net/qq_40881680/article/d...

2019数学建模A题高压油管的压力控制 省一论文即代码

2019数学建模A题高压油管的压力控制省一完整论文即详细C++和Matlab代码,希望对同学们有所帮助

图书管理系统(Java + Mysql)我的第一个完全自己做的实训项目

图书管理系统 Java + MySQL 完整实训代码,MVC三层架构组织,包含所有用到的图片资源以及数据库文件,大三上学期实训,注释很详细,按照阿里巴巴Java编程规范编写

linux下利用/proc进行进程树的打印

在linux下利用c语言实现的进程树的打印,主要通过/proc下的目录中的进程文件,获取status中的进程信息内容,然后利用递归实现进程树的打印

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

[已解决]踩过的坑之mysql连接报“Communications link failure”错误

目录 前言 第一种方法: 第二种方法 第三种方法(适用于项目和数据库在同一台服务器) 第四种方法 第五种方法(项目和数据库不在同一台服务器) 总结 前言 先给大家简述一下我的坑吧,(我用的是mysql,至于oracle有没有这样的问题,有心的小伙伴们可以测试一下哈), 在自己做个javaweb测试项目的时候,因为买的是云服务器,所以数据库连接的是用ip地址,用IDE开发好...

人工智能-计算机视觉实战之路(必备算法+深度学习+项目实战)

系列课程主要分为3大阶段:(1)首先掌握计算机视觉必备算法原理,结合Opencv进行学习与练手,通过实际视项目进行案例应用展示。(2)进军当下最火的深度学习进行视觉任务实战,掌握深度学习中必备算法原理与网络模型架构。(3)结合经典深度学习框架与实战项目进行实战,基于真实数据集展开业务分析与建模实战。整体风格通俗易懂,项目驱动学习与就业面试。 建议同学们按照下列顺序来进行学习:1.Python入门视频课程 2.Opencv计算机视觉实战(Python版) 3.深度学习框架-PyTorch实战/人工智能框架实战精讲:Keras项目 4.Python-深度学习-物体检测实战 5.后续实战课程按照自己喜好选择就可以

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python数据分析师-实战系列

系列课程主要包括Python数据分析必备工具包,数据分析案例实战,核心算法实战与企业级数据分析与建模解决方案实战,建议大家按照系列课程阶段顺序进行学习。所有数据集均为企业收集的真实数据集,整体风格以实战为导向,通俗讲解Python数据分析核心技巧与实战解决方案。

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

2021考研数学张宇基础30讲.pdf

张宇:博士,全国著名考研数学辅导专家,教育部“国家精品课程建设骨干教师”,全国畅销书《张宇高等数学18讲》《张宇线性代数9讲》《张宇概率论与数理统计9讲》《张宇考研数学题源探析经典1000题》《张宇考

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

期末考试评分标准的数学模型

大学期末考试与高中的考试存在很大的不同之处,大学的期末考试成绩是主要分为两个部分:平时成绩和期末考试成绩。平时成绩和期末考试成绩总分一般为一百分,然而平时成绩与期末考试成绩所占的比例不同会导致出现不同

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

c语言项目开发实例

十个c语言案例 (1)贪吃蛇 (2)五子棋游戏 (3)电话薄管理系统 (4)计算器 (5)万年历 (6)电子表 (7)客户端和服务器通信 (8)潜艇大战游戏 (9)鼠标器程序 (10)手机通讯录系统

相关热词 c#对文件改写权限 c#中tostring c#支付宝回掉 c#转换成数字 c#判断除法是否有模 c# 横向chart c#控件选择多个 c#报表如何锁定表头 c#分级显示数据 c# 不区分大小写替换
立即提问
相关内容推荐