Java基础-IO流对象之File类

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.IO技术概述

  回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了。那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据读出来继续使用呢?其实要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘、光盘、U盘等)上。

  当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作,当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作,因此我们把这种输入和输出动作称为IO操作。

二.File类的作用

  我们可以一起看看Java的API对File类的描述如下:

  综上,我们可以总结File类有以下特点:

    1>.将操作系统中的文件(file),目录(文件夹,directory),路径(path),封装成File对象;

    2>.File对象提供很多方法可以操作系统中的内容;

    3>.File类是与系统无关的类;

三.File类静态的成员变量

  我们在编写程序的时候,最好不要把操作系统的分隔符或者是路径的分隔符写死,除非你明确它的执行环境,不然最好还是用变量去代替!File定义了这两个变量,用法如下:

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File; public class FileDemo {
public static void main(String[] args) {
//与系统有关的路径分隔符,windows用“;”表示,Linux用“:”表示。
String pathseparator = File.pathSeparator;
System.out.println(pathseparator); //与系统有关的默认名称分隔符,Windows为“\”,而Linux以“/”分割
String separator = File.separator;
System.out.println(separator); }
} /*
以上代码执行结果如下:
;
\
*/

四.File类构造方法

1>.File(String pathname)

  传递路径名:可以写到文件夹,也可以写到一个文件。该方法发的作用就是将路径封装成File类型对象。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File; public class FileDemo {
public static void main(String[] args) {
//注意,windows路径可以写成“\\”进行分割。
File file = new File("D:\\10.Java");
System.out.println(file);
//Linux操作系统就建议用这种方式写,不过在Windows操作系统这样写也是可以的,效果和上面等效!
file = new File("D:/10.Java");
System.out.println(file);
}
} /*
以上代码执行结果如下:
D:\10.Java
D:\10.Java
*/

2>.File(String parent,String child)

  传递路径:需要传递字符串父路径(parent)以及字符串子路径(child),用“,”进行分割。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File; public class FileDemo {
public static void main(String[] args) {
//注意,windows路径可以写成“\\”进行分割。
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram","eclipse");
System.out.println(file);
}
} /*
以上代码执行结果如下:
D:\10.Java\JavaSE\eclipse\Myprogram\eclipse
*/

3>.File(File parent,String child)

  传递路径:传递File类型父路径,字符串子路径。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File; public class FileDemo {
public static void main(String[] args) {
File parent = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram");
//父路径为一个File对象
File file = new File(parent,"eclipse");
System.out.println(file);
}
} /*
以上代码执行结果如下:
D:\10.Java\JavaSE\eclipse\Myprogram\eclipse
*/

五.File类的常用方法

1>.File类创建文件功能

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram","yinzhengjie.txt");
//创建file文件,如果创建成功就返回true,如果文件已经存在就不会创建,并返回false,注意,该方法需要抛异常:IOException.
boolean res = file.createNewFile();
System.out.println(res);
}
} /*
以上代码执行结果如下:
true
*/

2>.File类创建目录功能

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram","yinzhengjie");
//创建单级文件夹
boolean res = file.mkdir();
System.out.println(res);
file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram","yinzhengjie/test/a/b/c");
//创建多级文件夹
res = file.mkdirs();
System.out.println(res);
}
} /*
以上代码执行结果如下:
true
true
*/

3>.File类删除功能【删除有风险,运行需谨慎!】

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram","yinzhengjie");
//删除空文件夹,删除成功就返回true,删除失败就返回false,删除方法不走回收站,直接从硬盘中删除。
boolean res = file.delete();
System.out.println(res); }
} /*
以上代码执行结果如下:
true
*/

4>.File类获取功能

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram","yinzhengjie");
//获取文件名称
String fileName = file.getName();
System.out.println(fileName);
//获取父路径
String getParent = file.getParent();
System.out.println(getParent);
//获取绝对路径
File absoluteFile = file.getAbsoluteFile();
System.out.println(absoluteFile); }
} /*
以上代码执行结果如下:
yinzhengjie
D:\10.Java\JavaSE\eclipse\Myprogram
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie
*/

5>.File类判断功能

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram","yinzhengjie");
if(!file.exists()) { //如果file对象封装的路径就执行以下代码
file.mkdirs(); //创建该目录对象
System.out.println(file.isDirectory()); //判断其是否为目录。
System.out.println(file.isFile()); //判断其是否为文件,如果上面为true,则说明该File对象是目录而非文件
}
}
} /*
以上代码执行结果如下:
true
false
*/

6>.File类list获取功能

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram");
//用list方法获取文件和目录,返回的是字符串数组
String[] fileList = file.list();
for (String fileName : fileList) {
System.out.println(fileName);
} //用listFiles方法返回的是文件的绝对路径,返回的是File数组,推荐使用这种方法。
File[] listFiles = file.listFiles();
for (File fileName : listFiles) {
System.out.println(fileName);
} //获取系统中的所有根目录,包括你的移动分区,硬盘分区,只要是挂在到当前操作系统中的都能查出来!
File[] listRoots = file.listRoots();
for (File rootName : listRoots) {
System.out.println(rootName);
}
}
} /*
以上代码执行结果如下:
eclipse
workspace
yinzhengjie
D:\10.Java\JavaSE\eclipse\Myprogram\eclipse
D:\10.Java\JavaSE\eclipse\Myprogram\workspace
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie
C:\
D:\
E:\
F:\
*/

六.文件过滤器

1>.文件过滤器原理分析

  a>.listFiles() 遍历目录的同时,获取到了文件名全路径,调用过滤器的方法 accept将获取到的路径传递给accept反方的参数pathname;

  b>.accept方法接受到了参数pathname,参数的是listFiles传递来的,在accept方法通过一系列逻辑判断(比如判断这个路径是否为Java文件),然后返回相应的布尔值;

  c>.一旦返回了true,listFiles将路径,保存在File数组中,如果为false,那么就真的被过滤掉了(就不会保存在File数组中);

2>.案例展示

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.FileFilter;
import java.io.IOException; class MyFile implements FileFilter{ @Override
public boolean accept(File pathname) {
//判断文件是否为java文件,
return pathname.getName().toLowerCase().endsWith(".java");
} } public class FileDemo { public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram\\yinzhengjie");
File[] listFiles = file.listFiles(new MyFile());
for (File fileName : listFiles) {
System.out.println(fileName);
}
}
} /*
以上代码执行结果如下:
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayArrayDemo.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayArrayDemo1.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayArrayDemo2.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayArrayDemo3.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\callName.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\Car.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\CarDemo.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\Demo1.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\Dog.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\DogDemo.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\Engine.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\Person.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\PersonDemo.java
*/

七.方法的递归调用

  方法的递归调用不仅仅是Java语言自己的特点,类似于Python,C++,C,golang等高级语言都有递归用法,递归方法说白了就是自己调用自己。递归方法适用于方法中运算的主题不变,但是运行的时候,参与运行的方法参数会变化,关于Java中的递归调用要注意以下几点:

    a>.递归一定要有出口,必须可以让程序停下;

    b>.递归次数不能过多;

    c>.构造方法,禁止递归;

  接下来我们就来几个递归的案例展示吧:

1>.递归变量全目录

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo { public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram\\yinzhengjie");
getAllDir(file);
} public static void getAllDir(File dir) {
File[] listFiles = dir.listFiles();
for (File file : listFiles) {
//判断变量file表示的路径是不是文件夹
if(file.isDirectory()) {
//如果是目录就继续遍历这个目录
getAllDir(file);
}else {
System.out.println(file);
}
}
} } /*
以上代码执行结果如下:
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayListDemo\arrayArrayDemo.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayListDemo\arrayArrayDemo1.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayListDemo\arrayArrayDemo2.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayListDemo\arrayArrayDemo3.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\arrayArrayDemo.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\arrayArrayDemo1.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\arrayArrayDemo2.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\arrayArrayDemo3.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\callName.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\Car.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\CarDemo.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\Demo1.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\Dog.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\DogDemo.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\Engine.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\Person.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\bin\PersonDemo.class
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\callName.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\Car.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\CarDemo.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\Demo1.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\Dog.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\DogDemo.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\Engine.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\Person.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\PersonDemo.java
*/

2>.递归求和计算

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo { public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram\\yinzhengjie");
int sum = getSum(10000);
System.out.println(sum);
} /*如果只是求和运算的话,不建议用递归,因为递归设计到弹栈和压栈,开销是比较大的用for循环还是
相当不错的,不过这里只是为了演示递归用法,就不用这么吹毛求疵啦!*/
public static int getSum(int number) {
if(number == 1) {
return 1;
}
return number + getSum(number - 1 );
} } /*
以上代码执行结果如下:
50005000
*/

3>.递归求阶乘

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo { public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram\\yinzhengjie");
int sum = getFactorial(5);
System.out.println(sum);
} /*如果只是求和运算的话,不建议用递归,因为递归设计到弹栈和压栈,开销是比较大的用for循环还是
相当不错的,不过这里只是为了演示递归用法,就不用这么吹毛求疵啦!*/
public static int getFactorial(int number) {
if(number == 1) {
return 1;
}
return number * getFactorial( number - 1 );
}
} /*
以上代码执行结果如下:
120
*/

4>.递归计算斐波那契数列

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.IOException; public class FileDemo { public static void main(String[] args) throws IOException {
int sum = getFibonaccieries(45);
System.out.println(sum);
} /*如果只是求和运算的话,不建议用递归,因为递归设计到弹栈和压栈,开销是比较大的用for循环还是
相当不错的,不过这里只是为了演示递归用法,就不用这么吹毛求疵啦!*/
public static int getFibonaccieries(int number) {
if( number == 1 ) {
return 1;
}else if( number == 2 ) {
return 1;
}else {
return getFibonaccieries(number -1 ) + getFibonaccieries(number - 2 );
}
}
} /*
以上代码执行结果如下:
1134903170
*/

5>.遍历目录下的所有java文件

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.File;
import java.io.FileFilter;
import java.io.IOException; class MyFile implements FileFilter{ @Override
public boolean accept(File pathname) {
//判断获取的是目录,直接返回true
if(pathname.isDirectory()) {
return true;
}
//如果不是目录再判断文件是否为java文件,
return pathname.getName().toLowerCase().endsWith(".java");
} } public class FileDemo { public static void main(String[] args) throws IOException {
File file = new File("D:\\10.Java\\JavaSE\\eclipse\\Myprogram\\yinzhengjie");
getJavaFiles(file);
} public static void getJavaFiles(File dir) {
//调用File对象方法listFiles()获取,加入过滤器
File[] listFiles = dir.listFiles(new MyFile());
for (File fileName : listFiles) {
//对fileName路径进行判断,是否为文件夹
if(fileName.isDirectory()) {
getJavaFiles(fileName);
}else {
System.out.println(fileName);
}
}
} } /*
以上代码执行结果如下:
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayListDemo\arrayArrayDemo.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayListDemo\arrayArrayDemo1.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayListDemo\arrayArrayDemo2.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\arrayListDemo\arrayArrayDemo3.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\callName.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\Car.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\CarDemo.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\Demo1.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\Dog.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\DogDemo.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\demo\Engine.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\Person.java
D:\10.Java\JavaSE\eclipse\Myprogram\yinzhengjie\PersonDemo.java
*/

Java基础-IO流对象之File类的更多相关文章

  1. Java基础-IO流对象之字符类(FileWrite与FileReader)

    Java基础-IO流对象之字符类(FileWrite与FileReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见编码简介 1>ASCII 我们知道计算机是 ...

  2. Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)

    Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...

  3. Java基础-IO流对象之字节流(Stream)

    Java基础-IO流对象之字节流(Stream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在前面我分享的笔记中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现 ...

  4. Java基础-IO流对象之随机访问文件(RandomAccessFile)

    Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对 ...

  5. Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)

    Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存 ...

  6. Java基础-IO流对象之打印流(PrintStream与PrintWriter)

    Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...

  7. java基础-IO流对象之Properties集合

    java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集. ...

  8. Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)

    Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...

  9. Java基础-IO流对象之转换流(InputStreamReader与OutoutStreamWriter)

    Java基础-IO流对象之转换流(InputStreamReader与OutoutStreamWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.转换流概述 我们之前 ...

随机推荐

  1. Daily Scrumming* 2015.10.25(Day 6)

    一.总体情况总结 1.UI今日总结:初步设计了社团详情界面 2.后端今日总结:讨论并设计数据库,表内容,属性和相互联系等,并在rails的activeRecord和activeModel中实现,同时设 ...

  2. 05慕课网《进击Node.js基础(一)》HTTP概念进阶(同步/异步)

    HTTP模块介绍 支持http协议的更多特性 不缓存请求和响应 API比较底层处理流相关,信息解析 HTTP相关概念 回调 将函数作为参数传到执行函数中,参数函数在执行函数中嵌套执行 function ...

  3. Myeclipse(2014)项目的注释乱码

    (之前都是在项目右键 propertits----resource---text file encoding 里面改成UTF-8的 下面是以后都直接换) window->preference-& ...

  4. DPDK L3fwd 源码阅读

    代码部分 整个L3fwd有三千多行代码,但总体思想就是在L2fwd的基础上,增加网络层的根据 IP 地址进行路由查找的内容. main.c 文件 int main(int argc, char **a ...

  5. 实现二叉树(search)

    ★实验任务 可怜的 Bibi 刚刚回到家,就发现自己的手机丢了,现在他决定回头去搜索 自己的手机. 现在我们假设 Bibi 的家位于一棵二叉树的根部.在 Bibi 的心中,每个节点 都有一个权值 x, ...

  6. jquery-numberformatter插件

    项目地址:https://code.google.com/p/jquery-numberformatter/ 非jquery版:https://github.com/andrewgp/jsNumber ...

  7. Weka平台学习

    链接:http://www.cs.waikato.ac.nz/ml/weka/index.html 一简介: WEKA的全名是怀卡托智能分析环境(Waikato Environment for Kno ...

  8. 在Delphi中获得唯一32位长字符串

    function GetGUID: string; var   vGUID: TGUID;   vTemp:string; begin   if S_OK = CreateGuid(vGUID) th ...

  9. Intellij IDEA Scala开发环境搭建

    1,在intellij 官网上下载IDEA 2,在scala官网上下载最新版scala 3,安装两个下载的文件 4,打开intellij,菜单栏help->find action   输入plu ...

  10. Python 的 “Magic” 方法

    在以前的文章中,我聊过了Python的 __getitem__ 和 __setitem__ 方法.这些方法被称为“魔法”方法.特殊方法或者dunger方法(译者:国内书籍用“魔法”一词较多).那么,什 ...