Java File 类 rename方法

Java File 的 rename方法,为什么执行效率那么低。我使用rename方法移动图片,移动一张图片是七八秒时间,测试的都要杀了我了啊。之后改成,使用io流读取文件,然后复制文件,删除。花费时间很低很低。图片只有200多k。为什么rename方法效率那么低。求解答啊

4个回答

File类包含众多对文件进行操作的方法,如下
1、构造子索引

File(File dir, String name) ----------- 创建一个 File 实例,表示指定路径指定名称的文件。 
File(String path) ------------ 创建一个 File 实例,表示路径名是指定路径参数的文件。
File(String path, String name) --......
答案就在这里:java File类的一些方法
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

u012489091
zhang爽 你好,你的解答我没看懂啊。我问的是为什么效率那么低,可那篇文章只是介绍了这个方法,至于为什么说的还不是很清楚啊
大约 4 年之前 回复

你好,你的解答我没看懂啊。我问的是为什么效率那么低,可那篇文章只是介绍了这个方法,至于为什么说的还不是很清楚啊

按我的个人经验,不应该发生这种情况的。
我到是觉得读文件再写文件,最后删除文件应该更慢些才对。
renameTo方面最终调用的是本地方法,应该不慢的:
protected native boolean rename0(File f1, File f2);

本地方法依赖与操作系统,可能是你的系统设置上可以调优。

简单点,直接写一个测试程序。其他无关的代码都不要。这样测试看看。
我用过rename这个方法,没有你说的那么慢。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Linux环境上Java File.renameTo方法重命名文件不同步问题

今天Linux环境上遇到个报错,经查日志发现两个JVM进程里几乎同时对同一个文件进行相同操作的重命名(File.renameTo)都返回true。 基本确定这方法是个非同步的操作了,刷新了认知.... 因为这方法底层是个native方法,所以不容易分析也不容易造出同样的问题场景,有谁同样遇到过,求分析

java.io.File.renameTo会删除源文件?

现在我有一个操作,需要调用java.io.File.renameTo这个方法重命名文件。实现代码大致如下, [code="java"]public void reNameFile() { File file = new File( "C:\\folderA\\sample.zip"); File newFile = new File("C:\\folderB\\sample.zip"); boolean reNameOK = file.renameTo(newFile); boolean deleteOK = file.delete(); if (reNameOK) { System.out.println("rename ok"); } if((deleteOK){ System.out.println("delete ok"); } }[/code] 我发现在调用renameTo之后,在把sample.zip放到folderB中的同时,folderA中的sample.zip也被删除了,这样一来当调用delete的时候,返回值deleteOK就是false。这是我在windows下测试的结果,不知道在linux下是怎么样的。如果renameTo在linux下也能删除源文件,是不是就不需要调用delete了?

jsch 操作sftp时候 rename相关

操作sftp时候有个rename方法 该方法有两个参数 来个大神给形象解释下这两个参数到底是什么

在JSP中抛出java.io.IOException: tmpFile.renameTo(classFile) failed异常怎么解决

在JSP中抛出java.io.IOException: tmpFile.renameTo(classFile) failed异常怎么解决

java 文档删除不了file.delete();

File file = new File(EMP_DATA_FILE); File file2 = new File("D:/eclipse-jee-mars-R-win32-x86_64/项目/HRMIS/records-new.txt"); BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); } catch (FileNotFoundException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } PrintWriter writer = null; try { writer = new PrintWriter(file2); } catch (FileNotFoundException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } String line; try { while ((line = reader.readLine()) != null) { // 判断条件,根据自己的情况书写,会删除所有符合条件的行 if (line.startsWith(payroll)) { // 读取后面的几行,废弃 continue; } writer.println(line); writer.flush(); } } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { reader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } writer.close(); // 删除老文件 file.delete(); file2.renameTo(file); System.out.print("\nRecord deleted.\n");

java.io.IOException: tmpFile.renameTo(classFile) failed

如题,这种错误,有时出现,刷新一下就又好了,请问这是什么原因,有什么解决之道哇。CSDN有个是因为过滤器的原因。链接如下: http://topic.csdn.net/u/20070530/00/4b3d2d30-6d43-41bf-a91b-85f24ff319ee.html?seed=299616105&r=55750776#r_55750776 请问高手有没有解决这个问题的良策啊?

Java中使用FTPClient读取ftp文件过程中无法修改读取文件的文件名

使用FTPClient读取ftp上的某个txt文件内容,存到数据库,然后再加读取到的txt文件重命名,在重命名过程失败,代码如下 public void readAndInsert(){ LOGGER.info("开始读取各场景投诉类型并存入数据库"); //ftp配置信息读取 String host = ConfigUtil.getValue("zhzd.ftp.host"); String userName = ConfigUtil.getValue("zhzd.ftp.username"); String password = ConfigUtil.getValue("zhzd.ftp.password"); //ftp连接 FTPClient ftp = new FTPClient(); try { ftp.connect(host); ftp.login(userName,password); } catch (Exception e) { LOGGER.info("投诉工单类型:ftp连接异常..."); e.printStackTrace(); } //ftp文件读取 FTPFile[] files = null; String targetFileName = ""; //目标文件名 try { files = ftp.listFiles(); int length = files.length; int fileNum = 0; //txt文件个数 List<String> fileList = new ArrayList<String>(); //存储所有txt文件名 for(int i=0;i < length ;i++){ if(files[i].getName().contains("txt")){ fileList.add(files[i].getName()); fileNum++; }; } //ftp文件操作-获取目标文件,其他文件放入old文件夹 if(fileNum == 0){ //没有txt文件,不更新 LOGGER.info("投诉工单类型:FTP下没有txt文件..."); ftp.disconnect(); return; }else if(fileNum == 1){ //只有一个txt,不读取,不更新 LOGGER.info("投诉工单类型:FTP下只有一个txt文件,今日数据库不需更新..."); ftp.disconnect(); return; }else{ //两个或者多个,取日期最大的那个 int[] dateArr = new int[fileNum]; for(int i=0;i<fileNum;i++){ dateArr[i] = Integer.parseInt(fileList.get(i).split("_")[3].substring(0, 8)); } Arrays.sort(dateArr); //留下日期最大的文件,其余的都放入old文件夹 /***********************其他没有读取的文件可以重命名(rename)******************************/ for(int i=0;i<fileNum;i++){ if(fileList.get(i).contains(String.valueOf(dateArr[fileNum-1]))){ targetFileName = fileList.get(i); LOGGER.info("投诉工单类型:目标文件为{}...", targetFileName); fileList.remove(i); break; } } //移动文件 Iterator<String> it = fileList.iterator(); String backName = ""; while(it.hasNext()){ backName = it.next(); ftp.rename(backName,"old/"+backName); LOGGER.info("投诉工单类型:文件{}放入old文件夹...",backName); } } } catch (Exception e) { LOGGER.info("投诉工单类型:ftp文件列表读取异常..."); e.printStackTrace(); } //数据库操作 if(!"".equals(targetFileName)){ //删表 dnTimerDao.deleteSendType(); //读文件 InputStreamReader read = null; try { read = new InputStreamReader(ftp.retrieveFileStream(targetFileName),"GBK"); BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; String[] str = null; while ((lineTxt = bufferedReader.readLine()) != null) { str = lineTxt.split(""); //存入数据库 if(str.length == 7){ dnTimerDao.insertSendType(str); }else{ throw new IOException("文件内容读取异常!"); } } read.close(); /*******************我用字符流读取的文件重命名失败,我将字符流、 字节流、输入流等都关闭了,也无法重命名*********************/ ftp.rename(targetFileName,"old/"+targetFileName); LOGGER.info("完成各场景投诉类型的读取和存入"); } catch (UnsupportedEncodingException e) { LOGGER.info("投诉工单类型:文件编码异常..."); e.printStackTrace(); } catch (IOException e) { LOGGER.info("投诉工单类型:文件内容的读取异常..."); e.printStackTrace(); } finally { if(read != null){ try { read.close(); } catch (IOException e) { e.printStackTrace(); } } try { ftp.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } } }

重命名一个已存在的文件

有两个文件: `File src = new File("loc/xyz.mp3")` 和 `File dst=new File("loc/xyz1.mp3")`。 现在我想将`xyz.mp3`重命名为`dst`,同时删除`src`文件,怎么才能实现?我试过的代码: src.delete(); dst.renameTo(src); 在应用的背景中异步运行,第一次执行时成功了,但是第二次就崩溃了。 请帮忙解决一下,谢谢。

JAVA通讯录 TXT文档分页问题

我在做一个JAVA通讯录,想请问一下如何把这个TXT文档 超过20行分页显示,请前辈们多多指教,谢谢 方便的话请帮我写一下代码看看行吗 package MyAddBook; import java.awt.Choice;//选择 import java.awt.Container;//容器 import java.awt.Frame; import java.awt.GridLayout;//间距 import java.awt.Toolkit;//居中 import java.awt.event.ActionEvent;//事件 import java.awt.event.ActionListener;//监听 import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter;//文本输出流打印对象的格式化 import java.text.Collator;//区分语言 import java.util.Arrays; import java.util.Comparator;//排序 import java.util.Scanner; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JOptionPane;//消息提示框 import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class MyAddBook { public static JFrame frame; public MyAddBook() { frame=new JFrame("通讯录");//面板标题 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//单击关闭按钮关闭窗口 frame.setVisible(true);//窗口可见 /* * 在一个窗口中,我们经常需要给窗口添加菜单条。在 Java * 中这一部分是由三个类实现的,它们是JMenuBar、JMenu和JMenuItem, 分别对应菜单条、菜单和菜单项。 * 同时,可以给JMenuItem注册侦听器,但不能对JMenuBar,JMenu注册侦听器. * * 一、菜单条(JMenuBar) * JMenuBar 的构造方法是 JMenuBar(),相当简单。在构造之后,还要将它设置成窗口的菜单条,这里要用 setJMenuBar * 方法: JMenuBar TestJMenuBar=new JMenuBar(); * TestFrame.setJMenuBar(TestJMenuBar); 需要说明的是,JMenuBar 类根据 JMenu * 添加的顺序从左到右显示,并建立整数索引。 * * 二、菜单(JMenu) 在添加完菜单条后,并不会显示任何菜单,所以还需要在菜单条中添加菜单。菜单 * JMenu 类的构造方法有4种: JMenu() 构造一个空菜单。 JMenu(Action a) * 构造一个菜单,菜单属性由相应的动作来提供。 JMenu(String s) 用给定的标志构造一个菜单。 JMenu(String * s,Boolean b) 用给定的标志构造一个菜单。如果布尔值为false,那么当释放鼠标按钮后,菜单项会消失;如果布尔值为true, * 那么当释放鼠标按钮后,菜单项仍将显示。这时的菜单称为 tearOff 菜单。 在构造完后,使用 JMenuBar 类的 add * 方法添加到菜单条中。 * * 三、菜单项(JmenuItem) 接下来的工作是往菜单中添加内容。 * 在菜单中可以添加不同的内容,可以是菜单项(JMenuItem),可以是一个子菜单,也可以是分隔符。 在构造完后,使用 JMenu 类的 * add 方法添加到菜单中。 子菜单的添加是直接将一个子菜单添加到母菜单中,而分隔符的添加只需要将分隔符作为菜单项添加到菜单中。 */ JMenuBar bar=new JMenuBar(); JMenu edit=new JMenu("编辑"); JMenuItem edit1=new JMenuItem("录入"); JMenuItem edit2=new JMenuItem("查询"); JMenuItem edit3=new JMenuItem("删除"); JMenuItem edit4=new JMenuItem("修改"); JMenuItem edit5=new JMenuItem("排序"); edit1.addActionListener(new Type());//监听 JMenu show=new JMenu("按性别显示"); JMenuItem show1=new JMenuItem("男"); JMenuItem show2=new JMenuItem("女"); Container c=frame.getContentPane(); JPanel p=new JPanel(); c.add(p); p.add(bar); bar.add(edit); bar.add(show); edit.add(edit1); edit.add(edit2); edit.add(edit3); edit.add(edit4); edit.add(edit5); show.add(show1); show.add(show2); // 获取你的屏幕的宽和高 int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; // 然后设置你编写的窗口的初始位置,也就是在中间, frame.setLocation(width / 2 - 200, height / 2 - 150); frame.setSize(500, 300); /* * 1. JFrame是javax.swing.JFrame的类,Frame是Java.awt.Frame的类 * * 2. 关闭窗口的方式不同: * 2.1 JFrame的关闭方式:传递参数使得关闭按钮有效 * Frame的关闭方式:加监听使得关闭按钮有效 */ edit2.addActionListener(new ActionListener() // 监听查询 { public void actionPerformed(ActionEvent e) { new Operation("查询", 2).dialog.setVisible(true); } }); edit3.addActionListener(new ActionListener() // 监听删除 { public void actionPerformed(ActionEvent e) { //获取你的屏幕的宽和高 int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; //然后设置你编写的窗口的初始位置,也就是在中间, frame.setLocation(width / 2 - 200, height / 2 - 150); new Operation("删除", 3).dialog.setVisible(true); } }); edit4.addActionListener(new ActionListener() // 监听修改 { public void actionPerformed(ActionEvent e) { new Operation("修改", 4).dialog.setVisible(true); } }); // 输出类 edit5.addActionListener(new ActionListener() // 监听排序 { public void actionPerformed(ActionEvent e) { new Print("按姓名排序后", 2);//调用 排序 函数 } }); show1.addActionListener(new ActionListener() // 监听男 { public void actionPerformed(ActionEvent e) { new Print("男", 1);//调用 匹配 显示 } }); show2.addActionListener(new ActionListener() // 监听女 { public void actionPerformed(ActionEvent e) { new Print("女", 1);//调用 匹配 显示 } }); } public static void main(String[] args) { new MyAddBook(); } public String[] getSortOfChinese(String[] a) { // Collator 类是用来执行区分语言环境,这里使用CHINA Comparator cmp = Collator.getInstance(java.util.Locale.CHINA); // JDKz自带对数组进行排序。 Arrays.sort(a, cmp); return a; } } class Operation{ private Frame frame; /* * public JDialog(Dialog owner, String title, boolean modal) * 创建一个具有指定标题、模式和指定所有者 Dialog 的对话框。 此构造方法将该组件的语言环境属性设置为 * JComponent.getDefaultLocale 所返回的值。 * * 参数: owner - 显示该对话框的所有者 Dialog; 如果此对话框没有所有者,则为 null * title -该对话框的标题栏中所显示的 String * modal - 指定对话框在显示时是否阻塞用户向其他顶层窗口输入。如果为true,则模式类型属性被设置为 DEFAULT_MODALITY_TYPE; * 否则对话框是无模式的。 * 抛出: * HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。 */ JDialog dialog = new JDialog(frame, "查询对话框", true); public Operation(String str, int n) { dialog.setSize(450, 300); //获取你的屏幕的宽和高 int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; //然后设置你编写的窗口的初始位置,也就是在中间, dialog.setLocation(width / 2 - 200, height / 2 - 150); Container c = dialog.getContentPane(); /*GridLayout(int rows, int cols, int hgap, int vgap) : 创建具有指定行数、列数以及组件水平、纵向一定间距的网格布局。*/ dialog.setLayout(new GridLayout(2, 1, 5, 5)); JLabel LOperation = new JLabel("请输入要" + str + "人员的名字"); final JTextField Tname = new JTextField(10);//单行文本输入框 JButton sure = new JButton("确定"); JButton cancel = new JButton("取消"); JPanel pane1 = new JPanel(); JPanel pane2 = new JPanel(); c.add(pane1); c.add(pane2); pane1.add(LOperation); pane1.add(Tname); pane2.add(sure); pane2.add(cancel); dialog.setDefaultCloseOperation(dialog.DISPOSE_ON_CLOSE); if (n == 2) { sure.addActionListener(new ActionListener() // 查询 { public void actionPerformed(ActionEvent e) { try { FileReader file = new FileReader("D:\\AddressBook.txt"); Scanner find = new Scanner(file); /* * 这里while括号里面的find.hasNext()方法用于判断find对象中有没有下一条数据 * 返回 bool 值 , 有则返回true 无 则返回false * 下面的find.next()是获取find对象中的值 然后赋值给 str 然后输出这个方法 * 其实就是循环输出it 对象中所有的值 */ while (find.hasNext()) { if (find.next().equals(Tname.getText())) { dialog.dispose();//关闭窗体,并释放一部分资源。 Type fd = new Type(); fd.frame = new JFrame("查询结果如下"); fd.Tname.setText(Tname.getText()); fd.Csex.select(find.next()); fd.Tunit.setText(find.next()); fd.Thomephone.setText(find.next()); fd.Temail.setText(find.next()); fd.Ttelephone.setText(find.next()); fd.Type(); } } file.close(); find.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block // e1.printStackTrace(); System.out.print("未找到文件"); } catch (IOException e2) { // TODO Auto-generated catch block // e2.printStackTrace(); System.out.print("未找到该人员"); } } }); } if (n == 3) { sure.addActionListener(new ActionListener() // 删除 { public void actionPerformed(ActionEvent e) { try { File file = new File("D:\\AddressBook.txt");//创建文件 Scanner find = new Scanner(file);//输入 FileWriter file1 = new FileWriter("D:\\AddressBook1.txt", true); PrintWriter write = new PrintWriter(file1); while (find.hasNext()) {//取下一个元素 String s = find.next(); if (!(s.equals(Tname.getText()))) { write.print(s + "\t"); write.print(find.next() + "\t"); write.print(find.next() + "\t\t"); write.print(find.next() + "\t\t"); write.print(find.next() + "\t\t"); write.println(find.next()); } else { find.next(); find.next(); find.next(); find.next(); find.next(); } } // file.close(); find.close(); file.delete(); write.close(); file1.close(); File file2 = new File("D:\\AddressBook1.txt"); file2.renameTo(new File("D:\\AddressBook.txt")); JOptionPane.showMessageDialog(null, "删除成功", "删 除 结 果", JOptionPane.INFORMATION_MESSAGE); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block // e1.printStackTrace(); JOptionPane.showMessageDialog(null, "未找到文件"); } catch (IOException e2) { // TODO Auto-generated catch block // e2.printStackTrace(); System.out.print("未找到该人员"); } } }); } if (n == 4) { sure.addActionListener(new ActionListener() // 修改 { public void actionPerformed(ActionEvent e) { try { File file = new File("D:\\AddressBook.txt"); Scanner find = new Scanner(file); FileWriter file1 = new FileWriter("D:\\AddressBook1.txt", true); PrintWriter write = new PrintWriter(file1); while (find.hasNext()) { String s = find.next(); if (!(s.equals(Tname.getText()))) { write.print(s + "\t"); write.print(find.next() + "\t"); write.print(find.next() + "\t\t"); write.print(find.next() + "\t\t"); write.print(find.next() + "\t\t"); write.println(find.next()); } else { dialog.dispose(); Type fd = new Type(); Type.y = 1; fd.frame = new JFrame("查询结果如下"); fd.Tname.setText(Tname.getText()); String s1 = find.next(); fd.Csex.select(s1); String s2 = find.next(); fd.Tunit.setText(s2); String s5 = find.next(); fd.Thomephone.setText(s5); String s6 = find.next(); fd.Temail.setText(s6); String s7 = find.next(); fd.Ttelephone.setText(s7); fd.Type(); if (Type.z == 1) { write.print(Tname.getText() + "\t"); write.print(s1 + "\t"); write.print(s2 + "\t\t"); write.print(s5 + "\t\t"); write.print(s6 + "\t\t"); write.println(s7); Type.z = 2; } } } // file.close(); find.close(); file.delete(); write.close(); file1.close(); File file2 = new File("D:\\AddressBook1.txt"); file2.renameTo(new File("D:\\AddressBook.txt")); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block // e1.printStackTrace(); System.out.print("未找到文件"); } catch (IOException e2) { // TODO Auto-generated catch block // e2.printStackTrace(); System.out.print("未找到该人员"); } } }); } cancel.addActionListener(new ActionListener() // 取消 { public void actionPerformed(ActionEvent e) { dialog.dispose();//关闭查询面板 } }); } } class Print{ public JTextArea area;// 多行文本输入框 public Print(String st, int n) { JFrame frame = new JFrame(st + "信息如下"); area = new JTextArea();// 多行文本输入框 frame.add(area); frame.setVisible(true); frame.setSize(1000, 500); frame.setLocation(350, 150);// 显示位置坐标 if (n == 2) try // 排序 { int i, j, k; String[] all; all = new String[1000]; BufferedReader read = new BufferedReader(new FileReader("D:\\AddressBook.txt")); area.append("姓 名" + "\t" + "性别" + "\t" + "单位" + "\t\t" + "住宅电话" + "\t\t" + "Email" + "\t\t\t" + "移动电话" + '\n'); int z = 1, count = 0; while (z == 1) { for (i = 0; i < 1000; i++) { String str = read.readLine(); if (str != null) { all[i] = str; count++; } else z = 0; } } String[] bll; bll = new String[count]; for (i = 0; i < count; i++) bll[i] = all[i]; getSortOfChinese(bll);// 调用排序函数 for (i = 0; i < count; i++) area.append(bll[i] + '\n');// 在指定元素的结尾追加内容 read.close(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e2) { e2.printStackTrace(); } if (n == 1) try // 指定类人员 { FileReader file = new FileReader("D:\\AddressBook.txt"); Scanner find = new Scanner(file); area.append("姓 名" + "\t" + "性别" + "\t" + "单位" + "\t\t" + "住宅电话" + "\t\t" + "Email" + "\t\t\t" + "移动电话" + '\n'); while (find.hasNext()) { String str1 = find.next(); String str2 = find.next(); if (str2.equals(st)) { area.append(str1 + "\t"); area.append(str2 + "\t"); area.append(find.next() + "\t\t"); area.append(find.next() + "\t\t"); area.append(find.next() + "\t\t"); area.append(find.next() + '\n'); } else { find.next(); find.next(); find.next(); find.next(); } } file.close(); find.close(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e2) { e2.printStackTrace(); } } private void getSortOfChinese(String[] bll) { // TODO Auto-generated method stub } } class Type implements ActionListener { public static int z = 2; public static int y = 0; public JLabel Lname, Lsex, Lunit, Lhomephone, Lemail, Ltelephone, Lnote;//添加标签 public JTextField Tname = new JTextField(15), Thomephone = new JTextField(25), Temail = new JTextField(25),Ttelephone = new JTextField(25), Tunit = new JTextField(25); public Choice Csex = new Choice();//创建文本框 public JButton sure, cancel;//添加“确定”“取消”按钮 public JFrame frame = new JFrame("录入联系人信息");//面板标题 public Type() { Csex.addItem("男");//给列表框或组合框等具有列表的对象添加项目 Csex.addItem("女"); } public void Type() { Container c = frame.getContentPane();//创建容器 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//单击窗口的关闭按钮时程序执行的操作 frame.setSize(800, 400);//窗口大小 frame.setLayout(new GridLayout(7, 2, 7, 7));//设置用户界面上的屏幕组件的格式布局 frame.setVisible(true);//设置面板可见 //获取你的屏幕的宽和高 int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; //然后设置你编写的窗口的初始位置,也就是在中间, frame.setLocation(width / 2 - 200, height / 2 - 150); Lname = new JLabel("姓名");//标签 Lsex = new JLabel("性别"); Lunit = new JLabel("单位"); Lhomephone = new JLabel("住宅电话"); Lemail = new JLabel("Email"); Ltelephone = new JLabel("移动电话"); sure = new JButton("确定"); cancel = new JButton("取消"); JPanel pane1 = new JPanel();//添加面板 JPanel pane2 = new JPanel(); JPanel pane3 = new JPanel(); JPanel pane5 = new JPanel(); c.add(pane1);//将面板添加到容器中 c.add(pane2); c.add(pane3); c.add(pane5); pane1.add(Lname);//将标签添加到面板 pane1.add(Tname); pane1.add(Lsex); pane1.add(Csex); pane2.add(Lunit); pane2.add(Tunit); pane2.add(Lhomephone); pane2.add(Thomephone); pane3.add(Lemail); pane3.add(Temail); pane3.add(Ltelephone); pane3.add(Ttelephone); pane5.add(sure); pane5.add(cancel); sure.addActionListener(new ActionListener() // 设置监听器 { public void actionPerformed(ActionEvent e) // 用匿名内部类实现监听器 { if (Tname.getText().equals(""))//输入的姓名是否为空 /* * 显示一个错误对话框,该对话框显示的 message 为 'alert': * JOptionPane.showMessageDialog(null, "alert", * "alert", JOptionPane.ERROR_MESSAGE); */ JOptionPane.showMessageDialog(null, "录入失败姓名必须填写", "录入结果", JOptionPane.INFORMATION_MESSAGE); else { try { FileWriter AddressBook = new FileWriter("D:\\AddressBook.txt", true);//写入文件 PrintWriter add = new PrintWriter(AddressBook); String s1, s2, s3,s4; if (Tunit.getText().equals(""))//未输入数据 s1 = "无"; else s1 = Tunit.getText(); if (Thomephone.getText().equals("")) s2 = "无"; else s2 = Thomephone.getText(); if (Temail.getText().equals("")) s3 = "无"; else s3 = Temail.getText(); if (Ttelephone.getText().equals("")) s4 = "无"; else s4 = Ttelephone.getText(); add.println(Tname.getText()+ "\t" + Csex.getSelectedItem() + "\t" + s1 + "\t\t" + s2 + "\t\t" + s3 + "\t\t" + s4); add.close(); AddressBook.close(); z = 1; } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if (y == 0) { JOptionPane.showMessageDialog(null, "录入成功", "录入结果", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "修改成功", "修改结果", JOptionPane.INFORMATION_MESSAGE); } Tname.setText(""); //删除时传入空白串 Tunit.setText(""); Thomephone.setText(""); Temail.setText(""); Ttelephone.setText(""); } } }); cancel.addActionListener(new ActionListener() // 设置监听器 { public void actionPerformed(ActionEvent e) // 用匿名内部类实现监听器 { frame.dispose();//关闭面板 z = 0; } }); } public void actionPerformed(ActionEvent e) { new Type().Type(); } }

求解读JAVA代码,为什么MP4文件不能播放?

下载的一个压缩包(压缩包内含mp4文件、字幕文件等),压缩包有密码,android程序用密码打开压缩文件,并执行一系列操作后,程序自动播放压缩包内的MP4文件,但MP4文件不能直接使用播放器播放,求解答如何能让mp4文件用播放器播放 。。。谢谢 。。。这里是完整代码下载链接:[点击下载完整代码](http://pan.baidu.com/s/1hqELVms),(用JD-GUI直接查看Jar内的代码、0000208821-DF705DD4是去掉了扩展名的压缩文件) 下面是部分代码(代码位于jar文件内的nc.class): ``` import android.widget.Toast; import com.is.piano.base.ISApp; import com.ispiano.crc64.Algorithm; import java.io.File; import java.io.PrintStream; import java.util.List; import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.exception.ZipException; import net.lingala.zip4j.model.FileHeader; import net.lingala.zip4j.model.ZipParameters; public class nc { public static boolean a(String paramString1, String paramString2) { long l1 = System.currentTimeMillis(); ZipFile localZipFile; File localFile; try { localZipFile = new ZipFile(paramString1); localZipFile.setFileNameCharset("GBK"); if (localZipFile.isValidZipFile()) break label101; mh.b(paramString1); throw new ZipException("\u538B\u7F29\u6587\u4EF6\u4E0D\u5408\u6CD5,\u53EF\u80FD\u88AB\u635F\u574F."); } catch (ZipException localZipException) { localZipException.printStackTrace(); localFile = new File(paramString2); if (!localFile.exists()) break label99; } File[] arrayOfFile; int i; if (localFile.isDirectory()) { arrayOfFile = localFile.listFiles(); i = arrayOfFile.length; } for (int j = 0; ; j++) { if (j >= i) { label99: return false; label101: if (localZipFile.isEncrypted()) localZipFile.setPassword("ISPiano Zhang"); List localList = localZipFile.getFileHeaders(); long l2 = 0L; for (int k = 0; ; k++) { if (k >= localList.size()) { if (l2 <= mh.b()) break; return false; } l2 += ((FileHeader)localList.get(k)).getUncompressedSize(); } localZipFile.extractAll(paramString2); mh.b(paramString1); System.out.println("\u89E3\u538B\u8017\u65F6\uFF1A" + (System.currentTimeMillis() - l1)); return true; } arrayOfFile[j].delete(); } } public static boolean a(String paramString1, String paramString2, String paramString3) { System.out.println("unzipUnfinishFile," + paramString1); while (true) { int i; try { String str1 = mh.c() + "/ispiano/package_cache/" + paramString1; ZipFile localZipFile = new ZipFile(str1); if (!localZipFile.isValidZipFile()) return false; localZipFile.setPassword("ISPiano Zhang"); List localList = localZipFile.getFileHeaders(); Algorithm localAlgorithm = new Algorithm(); i = 0; if (i < localList.size()) continue; eg localeg = new eg(); localeg.a(Long.parseLong(paramString3.substring(0, 8) + "00"), paramString2); localeg.g(); mh.b(str1); new File(mh.c() + "/ispiano/package_cache/" + "dir_" + paramString1).delete(); return true; FileHeader localFileHeader = (FileHeader)localList.get(i); String str2 = localFileHeader.getFileName(); long l = localFileHeader.getUncompressedSize(); String str3 = localAlgorithm.getFileName(paramString2 + paramString3 + str2); File localFile = new File(mh.c() + "/ispiano/video_cache/" + str3); mi.c("jing", str3 + "," + str2 + " " + localFile.length() + "," + l); if ((!localFile.exists()) || (localFile.length() != l)) { mh.b(mh.c() + "/ispiano/video_cache/" + str3); if (mh.b() >= l) continue; Toast.makeText(ISApp.a(), 2131230828, 0).show(); return false; mh.a(mh.c() + "/ispiano/package_cache/" + "dir_" + paramString1); mh.a(mh.c() + "/ispiano/video_cache/"); localZipFile.extractFile(str2, mh.c() + "/ispiano/package_cache/" + "dir_" + paramString1); new File(mh.c() + "/ispiano/package_cache/" + "dir_" + paramString1 + "/" + str2).renameTo(new File(mh.c() + "/ispiano/video_cache/" + str3)); } } catch (ZipException localZipException) { localZipException.printStackTrace(); return false; } i++; } } public static boolean b(String paramString1, String paramString2) { try { ZipFile localZipFile = new ZipFile(paramString2); ZipParameters localZipParameters = new ZipParameters(); localZipParameters.setCompressionMethod(8); localZipParameters.setCompressionLevel(5); localZipFile.addFolder(paramString1, localZipParameters); return true; } catch (ZipException localZipException) { localZipException.printStackTrace(); } return false; } public static boolean c(String paramString1, String paramString2) { try { new ZipFile(paramString1).extractAll(paramString2); return true; } catch (ZipException localZipException) { localZipException.printStackTrace(); } return false; } } ```

如果在上传后重命名文件,ZipArchive会抛出错误

<div class="post-text" itemprop="text"> <p>If I upload a zip file, and rename it, the ZipArchive function throws an ER_NOZIP error when I try to extract it, whereas if I upload and don't rename it will extract with no issues.</p> <p>Is this a known issue or is there something I'm doing wrong? Any help would be great!</p> <p><strong>EDIT for more details:</strong> The process is this: I can zip up a folder on my host and download it using ZipArchive just fine via PHP in my browser. Then I have a process where I can upload that zip file and unzip it on my host using ZipArchive. This works fine. The problem seems to come when I download something with the same name and Windows gives it a name like "My_file (2).zip".</p> <p>When I upload this file, that's when I get the NOZIP error. I used the rename() function to change it's name to remove spaces etc so that it becomes "my_file_2.zip" but it still throws an error. It seems as though only the originally named file will work.</p> </div>

请问我这个java代码怎么添加poi包的代码才能实现删除excel文件的第一行?

请问我这个java代码怎么添加poi包的代码才能实现删除excel文件的第一行? ``` package cn.ayee.xhd_Ledger; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class NhdLedger { public static void main(String[] args) throws IOException { File srcFolder = new File("G:\\share"); File destFolder = new File("G:\\newShare"); if(!destFolder.isDirectory()) { destFolder.mkdir(); } //获取该目录下的被复制文件的File数组 File[] fileArray = srcFolder.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return new File(dir, name).isFile() && name.endsWith(".xls"); } }); //遍历被复制文件的File数组,得到每一个被复制文件对象 for(File file : fileArray) { String name = file.getName(); File newFile = new File(destFolder, name); copyFile(file, newFile); File[] destFileArray = destFolder.listFiles(); //在目的地目录下改名 //获取复制文件的File数组 for(File destFile : destFileArray) { String newName = destFile.getName().replace(name,"enterbill.xls"); //封装复制的新文件的路径名 File destNewFile = new File(destFolder, newName); //改名 destFile.renameTo(destNewFile); //加上下面这段POI包的代码就报错 /* FileInputStream is = new FileInputStream(destNewFile); HSSFWorkbook workbook = new HSSFWorkbook(is); HSSFSheet sheet = workbook.getSheetAt(0); sheet.shiftRows(1, 1, -1); FileOutputStream os = new FileOutputStream(destNewFile); workbook.write(os); is.close(); os.close();*/ } } } public static void copyFile(File file, File newFile) throws IOException { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile)); byte[] bys = new byte[1024]; int len; while((len = bis.read(bys)) != -1) { bos.write(bys, 0, len); } bis.close(); bos.close(); } } ```

Java初学者,一个简单的问题

import java.io.*; public class Test{ public static void main(String args[]){ File f=new File("document","old"); File d=new File("target"); d.mkdir(); d.renameTo(new File("target","new")); String s[]=d.list(); for(int i=0;i<s.length;i++) System.out.println(s[i]); } } 为何没有输出?

error: unpacking of archive failed on file /usr/bin/funzip;5db1c14a: cpio: open failed - No such file or director

[root@localhost ~]# rpm -ivh unzip-6.1c-6.mga8.x86_64.rpm warning: unzip-6.1c-6.mga8.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 80420f66: NOKEY Preparing... ################################# [100%] Updating / installing... 1:unzip-6.1c-6.mga8 ################################# [100%] error: unpacking of archive failed on file /usr/bin/funzip;5db1c14a: cpio: open failed - No such file or directory error: unzip-6.1c-6.mga8.x86_64: install failed 最近在centos7上 安装zip unzip 总是失败,有遇到类问题的,希望指点一二 ps : 不要告诉我yum直接装 ,已经试了很多次了 ,问题一样

我用这个方法移动文件到另一个文件夹

public void moveFile(String fromPath, String toPath) { File fromFolder = new File(fromPath); File[] fromFiles = fromFolder.listFiles(); if (fromFiles == null) { return; } File toFolder = new File(toPath); if (!toFolder.exists()) { toFolder.mkdirs(); } for (int i = 0; i < fromFiles.length; i++) { File file = fromFiles[i]; if (file.isDirectory()) { moveFile(file.getPath(), toPath + "\\" + file.getName()); // 亦可删除 file.delete(); } if (file.isFile()) { File toFile = new File(toFolder + "\\" + file.getName()); if (toFile.exists()) { // 亦可删除 toFile.delete(); } // 移动文件 file.renameTo(toFile); } } } 写的测试类,在自己电脑上测试没有问题,可是部署到服务器上之后,文件是实现了转存,可是 服务器上是这样的 drwxr-xr-x 2 root root 4096 Sep 28 11:24 2 -rw-r--r-- 1 root root 140353 Sep 28 12:28 2\124685e5-734f-4a23-aeb5-7e306185010d.jpg 服务器上的那个2文件夹是个空的,下面的图片名称变成这样了 正确的应该是 \home\basecarupload\upload\user\1000000009\10000000095040201\2\9bd93c45-e1ac-4640-a75c-8609f6aa7c47.jpg 临时图片路径: /home/basecarupload/upload/usertemp/1000000009/2/ 图片固定路径:/home/basecarupload/upload/user/1000000009/10000000095040201/2/ 我写的测试类,在自己电脑上测试结果是没问题的,部署到服务器上之后就是这样的了。为什么会这样啊?

Idea方法重命名问题,且代码不报错

我有很多类调用A类里的method方法,当我把method方法名改为method2时,其他调用的类为什么不会报错? 我要打开调用的类才会提示报错。。。 问题来了,在我改完方法名之后,再用ctrl+左键点击已经提示没有类调用该方法了,我该怎么一个个找到那些类来改? 所以要怎么一键改名啊?!

如何才能使这个代码能修改超过100M以上的文件?

先感谢编写这段代码的作者, 这段代码可以完美的以16进制方式修改数据文件,经测试在2M左右内的文件可以完美运行,但是我在修改一个100M的文件时提示内存溢出,在这大神云集的地方特来请教大师们帮我修改成能运行在100M以上文件,感谢。 ``` import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.StringWriter; /** * RO Utility Mainly used for: 1.Double Open client 2.Open Unlimited View * * @author Ciro Deng(cdtdx@sohu.com) * @version 1.0 * */ public class MainTool { private final String RO_HOME = "D://Games//RO//"; //修改文件的路径 private final String FILE = "Ragexe"; //修改文件的主文件名 private final String BAK_FILE = FILE + "_BAK.sp2"; //修改文件的备份扩展名 private final String PATCH_FILE = FILE + ".sp2"; //修改文件的扩展名 /** * 进行16进制替换的规则定义 * Pattern Array Example: pattern[0][0] = "Original Hex String"; 原16进制字符串 * pattern[0][1] = "New Hex String"; 要替换的16进制字符串 */ private final String[][] pattern = { { "85C074095F5E33C05B8BE55DC3", "85C0EB095F5E33C05B8BE55DC3" }, { "85C0740E5F5EB801000000", "85C0EB0E5F5EB801000000" }, // Double // Open { "000066430000C843", "0000004300008644" } // Umlimited View }; /** * 备份文件恢复 * ture the backup file into real file * */ public void restore() { if (isExistBackup()) { new File(RO_HOME + PATCH_FILE).delete(); new File(RO_HOME + BAK_FILE) .renameTo(new File(RO_HOME + PATCH_FILE)); System.out.println("[----------------Restore file OK!--------------------]"); } else { System.out.println("Backup file does not exist!"); System.exit(0); } } public void init() { //初始化操作 if (new File(RO_HOME + PATCH_FILE).exists()) { System.out .println("[-------------Initialize original file OK!-----------]"); } else { System.out.println("File is not Existed! Please restore it first!"); } // backup original file if (!isExistBackup()) { new File(RO_HOME + PATCH_FILE) .renameTo(new File(RO_HOME + BAK_FILE)); } System.out .println("[---------------Please choose your action------------]"); System.out.println("1:Modify double open and unlimited view mode!"); System.out.println("2:Restore original mode!"); System.out.println("Please input 1 or 2 and Enter:"); } public void success() { //成功操作提示 System.out.println(); System.out .println("[-------------Patch file OK! Have fun with RO!-------]"); } /** * 进行16进制替换 * replace input Hex String with defined pattern * * @param original * @return */ public String replace(String original) { for (int i = 0; i < pattern.length; i++) { original = original.replaceAll(pattern[i][0].toLowerCase(), pattern[i][1].toLowerCase()); } return original; } /** * 将文件读取为16进制String * Read original File and transfer it into Hex String * * @return * @throws IOException */ public String readOriginal2Hex() throws IOException { FileInputStream fin = new FileInputStream(new File(RO_HOME + BAK_FILE)); StringWriter sw = new StringWriter(); int len = 1; byte[] temp = new byte[len]; /*16进制转化模块*/ for (; (fin.read(temp, 0, len)) != -1;) { if (temp[0] > 0xf && temp[0] <= 0xff) { sw.write(Integer.toHexString(temp[0])); } else if (temp[0] >= 0x0 && temp[0] <= 0xf) {//对于只有1位的16进制数前边补“0” sw.write("0" + Integer.toHexString(temp[0])); } else { //对于int<0的位转化为16进制的特殊处理,因为Java没有Unsigned int,所以这个int可能为负数 sw.write(Integer.toHexString(temp[0]).substring(6)); } } return sw.toString(); } /** * 将替换后的16进制字符串写回文件 * write replaced original String to file * * @param replaced * @throws NumberFormatException * @throws IOException */ public void writeNew2Binary(String replaced) throws NumberFormatException, IOException { FileOutputStream fout = new FileOutputStream(RO_HOME + PATCH_FILE); for (int i = 0; i < replaced.length(); i = i + 2) { fout.write(Integer.parseInt(replaced.substring(i, i + 2), 16)); } } /** * test direct output string to file * * @param temp * @throws IOException */ public void writeTest(String temp) throws IOException { FileOutputStream fout = new FileOutputStream(RO_HOME + "test.txt"); for (int i = 0; i < temp.length(); i++) { fout.write(temp.charAt(i)); } } /** * check if the backup file exists * * @return */ public boolean isExistBackup() { return new File(RO_HOME + BAK_FILE).exists(); } /** * 主要操作方法,组织工作流程 * Main process method * * @throws IOException */ public void patch() throws IOException { // init init(); //输入参数: //1:进行查找替换 //2:将备份文件恢复 String input = new BufferedReader(new InputStreamReader(System.in)) .readLine(); if (input.equals("1")) { String temp = null; temp = readOriginal2Hex(); temp = replace(temp); writeNew2Binary(temp); success(); } else if (input.equals("2")) { restore(); } else { System.out.println("Bad input parameter!"); System.exit(0); } } /** * Main方法 * main * * @param args * @throws IOException */ public static void main(String[] args) throws IOException { MainTool tool = new MainTool(); tool.patch(); } } ```

给这个Java代码插入登录和注册能力,且账号和密码都在TXT文件里?请大神帮助?着急/?wuwuwu?

import java.awt.Choice; import java.awt.Container; import java.awt.GridLayout; import java.awt.MenuItem; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.print.Printable; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.text.Collator; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.WindowConstants; class MyAddBook { public static JFrame frame; public MyAddBook(){ frame=new JFrame("通讯录"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); JMenuBar menubar=new JMenuBar(); JMenu edit=new JMenu("编辑"); JMenuItem edit1=new JMenuItem("录入"); JMenuItem edit2=new JMenuItem("查询"); JMenuItem edit3=new JMenuItem("删除"); JMenuItem edit4=new JMenuItem("修改"); JMenuItem edit5=new JMenuItem("排序"); edit1.addActionListener(new Typein()); JMenu show=new JMenu("显示信息"); JMenuItem show1=new JMenuItem("同学"); JMenuItem show2=new JMenuItem("同事"); JMenuItem show3=new JMenuItem("朋友"); JMenuItem show4=new JMenuItem("亲戚"); JMenuItem show5=new JMenuItem("全体人员"); Container c=frame.getContentPane(); JPanel pane=new JPanel(); c.add(pane); pane.add(menubar); menubar.add(edit); edit.add(edit1); edit.add(edit2); edit.add(edit3); edit.add(edit4); edit.add(edit5); menubar.add(show); show.add(show1); show.add(show2); show.add(show3); show.add(show4); show.add(show5); frame.setSize(300,100); //frame.pack(); //查询修改删除 class Search{ JDialog dialog=new JDialog(frame,"查询对话框",true); public Search(String str,int n){ dialog.setSize(250,200); Container c=dialog.getContentPane(); dialog.setLayout(new GridLayout(2,1,5,5)); JLabel Lsearch=new JLabel("请输入要"+str+"人员的名字:"); final JTextField Tname=new JTextField(10); JButton certain=new JButton("确定"); JButton cancel=new JButton("取消"); //final String in=Tname.getText(); JPanel pane1=new JPanel(); JPanel pane2=new JPanel(); c.add(pane1); c.add(pane2); pane1.add(Lsearch); pane1.add(Tname); pane2.add(certain); pane2.add(cancel); dialog.setDefaultCloseOperation(dialog.DISPOSE_ON_CLOSE); //dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); if(n==2){ certain.addActionListener(new ActionListener() //查询 { public void actionPerformed(ActionEvent e) { try { FileReader file=new FileReader("D:\\AddressBook.txt"); Scanner find=new Scanner(file); while(find.hasNext()){ if(find.next().equals(Tname.getText())){ dialog.dispose(); Typein fd=new Typein(); fd.frame=new JFrame("查询结果如下"); fd.Tname.setText(Tname.getText()); fd.Cgroup.select(find.next()); fd.Cbirthyear.select(find.next()); fd.Cbirthmonth.select(find.next()); fd.Cbirthday.select(find.next()); fd.Tphone.setText(find.next()); fd.Temail.setText(find.next()); fd.Tother.setText(find.next()); fd.typein(); } } file.close(); find.close(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block //e1.printStackTrace(); System.out.print("未找到文件"); } catch (IOException e2) { // TODO Auto-generated catch block //e2.printStackTrace(); System.out.print("未找到该人员"); } } }); } if(n==3){ certain.addActionListener(new ActionListener() //删除 { public void actionPerformed(ActionEvent e) { try { File file=new File("D:\\AddressBook.txt"); Scanner find=new Scanner(file); FileWriter file1=new FileWriter("D:\\AddressBook1.txt",true); PrintWriter write=new PrintWriter(file1); while(find.hasNext()){ String s=find.next(); if(!(s.equals(Tname.getText()))){ write.print(s+'\t'); write.print(find.next()+'\t'); write.print(find.next()+' '); write.print(find.next()+' '); write.print(find.next()+'\t'); write.print(find.next()+'\t'); write.print(find.next()+'\t'); write.println(find.next()); } else { find.next();find.next();find.next();find.next(); find.next();find.next();find.next(); } } //file.close(); find.close(); file.delete(); write.close(); file1.close(); File file2=new File("D:\\AddressBook1.txt"); file2.renameTo(new File( "D:\\AddressBook.txt")); JOptionPane.showMessageDialog(null,"删除成功", "删除结果",JOptionPane.INFORMATION_MESSAGE); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block //e1.printStackTrace(); JOptionPane.showMessageDialog(null, "未找到文件"); } catch (IOException e2) { // TODO Auto-generated catch block //e2.printStackTrace(); System.out.print("未找到该人员"); } } }); } if(n==4){ certain.addActionListener(new ActionListener() //修改 { public void actionPerformed(ActionEvent e) { try {File file=new File("D:\\AddressBook.txt"); Scanner find=new Scanner(file); FileWriter file1=new FileWriter("D:\\AddressBook1.txt",true); PrintWriter write=new PrintWriter(file1); while(find.hasNext()){ String s=find.next(); if(!(s.equals(Tname.getText()))){ write.print(s+'\t'); write.print(find.next()+'\t'); write.print(find.next()+' '); write.print(find.next()+' '); write.print(find.next()+'\t'); write.print(find.next()+'\t'); write.print(find.next()+'\t'); write.println(find.next()); } else{ dialog.dispose(); Typein fd=new Typein(); Typein.y=1; fd.frame=new JFrame("查询结果如下"); fd.Tname.setText(Tname.getText()); String s1=find.next(); fd.Cgroup.select(s1); String s2=find.next(); fd.Cbirthyear.select(s2); String s3=find.next(); fd.Cbirthmonth.select(s3); String s4=find.next(); fd.Cbirthday.select(s4); String s5=find.next(); fd.Tphone.setText(s5); String s6=find.next(); fd.Temail.setText(s6); String s7=find.next(); fd.Tother.setText(s7); fd.typein(); if(Typein.z==1){ write.print(Tname.getText()+'\t'); write.print(s1+'\t'); write.print(s2+' '); write.print(s3+' '); write.print(s4+'\t'); write.print(s5+'\t'); write.print(s6+'\t'); write.println(s7); Typein.z=2; } } } //file.close(); find.close(); file.delete(); write.close(); file1.close(); File file2=new File("D:\\AddressBook1.txt"); file2.renameTo(new File( "D:\\AddressBook.txt")); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block //e1.printStackTrace(); System.out.print("未找到文件"); } catch (IOException e2) { // TODO Auto-generated catch block //e2.printStackTrace(); System.out.print("未找到该人员"); } } }); } cancel.addActionListener(new ActionListener() //取消 { public void actionPerformed(ActionEvent e) {System.out.println("fdas"); //dialog.dispose(); } }); } } edit2.addActionListener(new ActionListener() //监听查询 { public void actionPerformed(ActionEvent e) { new Search("查询",2).dialog.setVisible(true); } }); edit3.addActionListener(new ActionListener() //监听删除 { public void actionPerformed(ActionEvent e) { new Search("删除",3).dialog.setVisible(true); } }); edit4.addActionListener(new ActionListener() //监听修改 { public void actionPerformed(ActionEvent e) { new Search("修改",4).dialog.setVisible(true); } }); //输出类 class Print{ public JTextArea area; public Print(String st,int n){ JFrame frame = new JFrame(st+"信息如下"); frame.setSize(800, 400); //frame.setLocation(350, 150); area = new JTextArea(); frame.add(area); frame.setVisible(true); if(n==2) try //排序 {int i,j,k; String []all; all=new String[1000]; BufferedReader read=new BufferedReader(new FileReader("D:\\AddressBook.txt")); area.append("姓名"+'\t'+"组别"+'\t'+"生日"+'\t'+"电话"+'\t'+"Email"+'\t'+"其他"+'\n'); int z=1,count=0; while(z==1){ for(i=0;i<1000;i++){ String str=read.readLine(); if(str!=null) {all[i]=str;count++;} else z=0; } } String[] bll; bll=new String[count]; for(i=0;i<count;i++) bll[i]=all[i]; getSortOfChinese(bll); for (i = 0; i < count; i++) area.append(bll[i]+'\n'); read.close(); }catch (FileNotFoundException e1) { e1.printStackTrace(); }catch (IOException e2){ e2.printStackTrace(); } if(n==1) try //各类人员 { FileReader file=new FileReader("D:\\AddressBook.txt"); Scanner find=new Scanner(file); area.append("姓名"+'\t'+"组别"+'\t'+"生日"+'\t'+"电话"+'\t'+"Email"+'\t'+"其他"+'\n'); while(find.hasNext()){ String str1=find.next(); String str2=find.next(); if(str2.equals(st)){ area.append(str1+'\t'); area.append(str2+'\t'); area.append(find.next()+' '); area.append(find.next()+' '); area.append(find.next()+'\t'); area.append(find.next()+'\t'); area.append(find.next()+'\t'); area.append(find.next()+'\n'); } else{ find.next();find.next();find.next();find.next(); find.next();find.next(); } } file.close(); find.close(); }catch (FileNotFoundException e1) { e1.printStackTrace(); }catch (IOException e2){ e2.printStackTrace(); } if(n==0) try //全体人员信息 { BufferedReader read=new BufferedReader(new FileReader("D:\\AddressBook.txt")); area.append("姓名"+'\t'+"组别"+'\t'+"生日"+'\t'+"电话"+'\t'+"Email"+'\t'+"其他"+'\n'); int z=1; while(z==1){ String str=read.readLine(); if(str!=null) area.append(str+'\n'); else z=0; } read.close(); }catch (FileNotFoundException e1) { e1.printStackTrace(); }catch (IOException e2){ e2.printStackTrace(); } } } edit5.addActionListener(new ActionListener() //监听排序 { public void actionPerformed(ActionEvent e) { new Print("按姓名排序后",2); } }); show1.addActionListener(new ActionListener() //监听同学 { public void actionPerformed(ActionEvent e) { new Print("同学",1); } }); show2.addActionListener(new ActionListener() //监听同事 { public void actionPerformed(ActionEvent e) { new Print("同事",1); } }); show3.addActionListener(new ActionListener() //监听朋友 { public void actionPerformed(ActionEvent e) { new Print("朋友",1); } }); show4.addActionListener(new ActionListener() //监听亲戚 { public void actionPerformed(ActionEvent e) { new Print("亲戚",1); } }); show5.addActionListener(new ActionListener() //监听全体人员 { public void actionPerformed(ActionEvent e) { new Print("全体人员",0); } }); } public static void main(String []args){ new MyAddBook(); } public static String[] getSortOfChinese(String[] a) { // Collator 类是用来执行区分语言环境这里使用CHINA Comparator cmp = Collator.getInstance(java.util.Locale.CHINA); // JDKz自带对数组进行排序。 Arrays.sort(a, cmp); return a; } } //输入类 class Typein implements ActionListener{ public static int z=2; public static int y=0; public JLabel Lname,Lgroup,Lbirthday,Lphone,Lemail,Lother,Lnote; public JTextField Tname=new JTextField(10),Tphone=new JTextField(15), Temail=new JTextField(15),Tother=new JTextField(15); public Choice Cgroup=new Choice(),Cbirthyear=new Choice(),Cbirthmonth=new Choice(), Cbirthday=new Choice(); public JButton certain,cancel; public JFrame frame=new JFrame("录入联系人信息"); public Typein(){ Cgroup.addItem("无"); Cgroup.addItem("同学"); Cgroup.addItem("同事"); Cgroup.addItem("朋友"); Cgroup.addItem("亲戚"); Cbirthyear.addItem("1985"); Cbirthyear.addItem("1986"); Cbirthyear.addItem("1987"); Cbirthyear.addItem("1988"); Cbirthyear.addItem("1989"); Cbirthyear.addItem("1990"); Cbirthyear.addItem("1991"); Cbirthyear.addItem("1992"); Cbirthyear.addItem("1993"); Cbirthyear.addItem("1994"); Cbirthyear.addItem("1995"); Cbirthyear.addItem("1996"); Cbirthyear.addItem("1997"); Cbirthyear.addItem("1998"); Cbirthyear.addItem("1999"); Cbirthyear.addItem("2000"); Cbirthmonth.addItem("01"); Cbirthmonth.addItem("02"); Cbirthmonth.addItem("03"); Cbirthmonth.addItem("04"); Cbirthmonth.addItem("05"); Cbirthmonth.addItem("06"); Cbirthmonth.addItem("07"); Cbirthmonth.addItem("08"); Cbirthmonth.addItem("09"); Cbirthmonth.addItem("10"); Cbirthmonth.addItem("11"); Cbirthmonth.addItem("12"); Cbirthday.addItem("01"); Cbirthday.addItem("02"); Cbirthday.addItem("03"); Cbirthday.addItem("04"); Cbirthday.addItem("05"); Cbirthday.addItem("06"); Cbirthday.addItem("07"); Cbirthday.addItem("08"); Cbirthday.addItem("09"); Cbirthday.addItem("10"); Cbirthday.addItem("11"); Cbirthday.addItem("12"); Cbirthday.addItem("13"); Cbirthday.addItem("14"); Cbirthday.addItem("15"); Cbirthday.addItem("16"); Cbirthday.addItem("17"); Cbirthday.addItem("18"); Cbirthday.addItem("19"); Cbirthday.addItem("20"); Cbirthday.addItem("21"); Cbirthday.addItem("22"); Cbirthday.addItem("23"); Cbirthday.addItem("24"); Cbirthday.addItem("25"); Cbirthday.addItem("26"); Cbirthday.addItem("27"); Cbirthday.addItem("28"); Cbirthday.addItem("29"); Cbirthday.addItem("30"); Cbirthday.addItem("31"); } public void typein(){ Container c=frame.getContentPane(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500,300); frame.setLayout(new GridLayout(5,1,5,5)); frame.setVisible(true); Lname=new JLabel("姓名:"); Lgroup=new JLabel("组别:"); Lbirthday=new JLabel("生日:"); Lphone=new JLabel("电话:"); Lemail=new JLabel("Email:"); Lother=new JLabel("其他:"); Lnote=new JLabel("注释:”其他“中输入所在学校 /共事单位/认识地方/亲戚称呼"); certain=new JButton("确定"); cancel=new JButton("取消"); JPanel pane1=new JPanel(); JPanel pane2=new JPanel(); JPanel pane3=new JPanel(); JPanel pane4=new JPanel(); JPanel pane5=new JPanel(); c.add(pane1); c.add(pane2); c.add(pane3); c.add(pane4); c.add(pane5); pane1.add(Lname); pane1.add(Tname); pane1.add(Lgroup); pane1.add(Cgroup); pane2.add(Lbirthday); pane2.add(Cbirthyear); pane2.add(Cbirthmonth); pane2.add(Cbirthday); pane2.add(Lphone); pane2.add(Tphone); pane3.add(Lemail); pane3.add(Temail); pane3.add(Lother); pane3.add(Tother); pane4.add(Lnote); pane5.add(certain); pane5.add(cancel); certain.addActionListener(new ActionListener() //设置监听器 { public void actionPerformed(ActionEvent e) //用匿名内部类实现监听器 { if(Tname.getText().equals("")) JOptionPane.showMessageDialog(null,"录入失败,姓名必须填写!", "录入结果",JOptionPane.INFORMATION_MESSAGE); else{ try { FileWriter AddressBook=new FileWriter("D:\\AddressBook.txt",true); PrintWriter add=new PrintWriter(AddressBook); String s1,s2,s3,s4; if(Tname.getText().equals(""))s1="无";else s1=Tname.getText(); if(Tphone.getText().equals(""))s2="无";else s2=Tphone.getText(); if(Temail.getText().equals(""))s3="无";else s3=Temail.getText(); if(Tother.getText().equals(""))s4="无";else s4=Tother.getText(); /*add.println(Tname.getText()+'\t'+Cgroup.getSelectedItem()+'\t'+Cbirthyear.getSelectedIt em()+ ' '+Cbirthmonth.getSelectedItem()+' '+Cbirthday.getSelectedItem()+ '\t'+Tphone.getText()+'\t'+Temail.getText()+'\t'+Tother.getText());*/ add.println(s1+'\t'+Cgroup.getSelectedItem()+'\t'+Cbirthyear.getSelectedItem()+ ' '+Cbirthmonth.getSelectedItem()+' '+Cbirthday.getSelectedItem()+ '\t'+s2+'\t'+s3+'\t'+s4); add.close(); AddressBook.close(); z=1; } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if(y==0){ JOptionPane.showMessageDialog(null,"录入成功", "录入结果",JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null,"修改成功", "修改结果",JOptionPane.INFORMATION_MESSAGE); } Tname.setText(""); Tphone.setText(""); Temail.setText(""); Tother.setText(""); //Cgroup.setName("无"); //Cbirthyear.setName("1985"); //Cbirthmonth.setName("1"); //Cbirthday.setName("1"); } } }); cancel.addActionListener(new ActionListener() //设置监听器 { public void actionPerformed(ActionEvent e) //用匿名内部类实现监听器 { frame.dispose(); z=0; } }); } public void actionPerformed(ActionEvent e) { new Typein().typein(); } }

java的SQLExec执行脚本文件如何记录日志到日志文件

各位大神,我现在在做一个工具,用到了ant包的SQLExec这个工具类。现在出了一个问题,比如脚本执行过程中的报错信息不会记录到日志文件,比如表试图不存在。。。。。我的代码格式如下 //循环在指定的数据库执行SQL文件 for (int i = 0; i < dbArray.length; i++) { dbi = dbArray[i]; dbia = dbi.split("#"); if (Pattern.matches(dbia[4], fileName)) { reName = new File(fileName).getName(); sqlExec.setDriver(dbia[0]); sqlExec.setUrl(dbia[1]); sqlExec.setUserid(dbia[2]); sqlExec.setPassword(dbia[3]); sqlExec.setSrc(new File(fileName)); sqlExec.setPrint(true); sqlExec.setOnerror((SQLExec.OnError) (EnumeratedAttribute.getInstance(SQLExec.OnError.class, "continue"))); sqlExec.setOutput(new File(this.projSqlFile + "/" + dbia[5] + reName.substring(0, reName.lastIndexOf(".")) + ".log")); sqlExec.setProject(new Project()); // 要指定这个属性,不然会出错 sqlExec.execute(); }

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Vue + Spring Boot 项目实战(十九):Web 项目优化解决方案

快来一起探索如何打脸我们的破项目,兄弟姐妹们把害怕打在公屏上!

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解!

CSDN:因博主近期注重写专栏文章(已超过150篇),订阅博主专栏人数在突增,近期很有可能提高专栏价格(已订阅的不受影响),提前声明,敬请理解! 目录 博客声明 大数据了解博主粉丝 博主的粉丝群体画像 粉丝群体性别比例、年龄分布 粉丝群体学历分布、职业分布、行业分布 国内、国外粉丝群体地域分布 博主的近期访问每日增量、粉丝每日增量 博客声明 因近期博主写专栏的文章越来越多,也越来越精细,逐步优化文章。因此,最近一段时间,订阅博主专栏的人数增长也非常快,并且专栏价

一个HashMap跟面试官扯了半个小时

一个HashMap能跟面试官扯上半个小时 关注 安琪拉的博客 1.回复面试领取面试资料 2.回复书籍领取技术电子书 3.回复交流领取技术电子书 前言 HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。 开场 面试官: 你先自我介绍一下吧! 安琪拉: 我是安琪拉,草丛三婊之一,最强中单(钟馗不服)!哦,不对,串场了,我是**,目...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录 这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来: 挖一个大坑,Spring Security 开搞! 松哥手把手带你入门 Spring Security,别再问密...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

用了这个 IDE 插件,5分钟解决前后端联调!

点击上方蓝色“程序猿DD”,选择“设为星标”回复“资源”获取独家整理的学习资料!作者 |李海庆我是一个 Web 开发前端工程师,受到疫情影响,今天是我在家办公的第78天。开发了两周,...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

Java14 新特性解读

Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:https://openjdk.java.net/projects/jdk/14/以下是个人对于特性的中文式...

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

工作两年简历写成这样,谁要你呀!

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! 一、前言 最近有伙伴问小傅哥,我的简历怎么投递了都没有反应,心里慌的很呀。 工作两年了目前的公司没有什么大项目,整天的维护别人的代码,有坑也不让重构,都烦死了。荒废我一身技能无处施展,投递的简历也没人看。我是不动物园里的猩猩,狒狒了! 我要加班,我要996,我要疯狂编码,求给我个机会… ...

相关热词 c# 解析cad c#数字格式化万 c#int转byte c#格式化日期 c# wpf 表格 c# 实现ad域验证登录 c#心跳包机制 c#使用fmod.dll c#dll vb 调用 c# outlook
立即提问
相关内容推荐