Java的IO操作

来源:互联网 发布:讲故事软件哪个好 编辑:程序博客网 时间:2024/05/21 06:46
1.读取文件到内存中
InputStream is = new FileInputStream(filename);
InputStreamReader reader = new InputStreamReader(is);

try{
    BufferedReader in = new BufferedReader(reader);
    //BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
     //BufferedReader in = new BufferedReader(new FileReader(new File(filename));
    String buf = null;
    StringBuffer textBuf = new StringBuffer();
    while((buf = in.readLine()) != null){
        textBuf.append(buf);
        textBuf.append("\n");
    }
    in.close();
}catch(Exception e){    
}finally{
}

如何利用文件过滤器,获取想要的文件:
File[] files = directory.listFiles(new FilenameFilter() {
public boolean accept(File d, String name) {
return name.endsWith(".txt");
}
});


2.记录日志到本地磁盘
try{
BufferedWriter writer = new BufferedWriter(new FileWriter(new File("c:\\text\\ClassficationResult.txt"),true));
writer.write("=============判断错误count============" + count + "\r\n");
writer.write("=================结束===============" + "\r\n");
writer.close();
}catch(Exception e){
e.printStackTrace();
}


3.获取从console控制台输入的int类型的数字
Scanner in = new Scanner(System.in);
    int i = in.nextInt();


4.获取系统的当前时间
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss sss");
//private java.text.SimpleDateFormat fromat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
 df.format(date);
HH:指的是24小时制;hh:指的是12小时制;


5.批量将给定的文件夹下的txt文本文档进行拆分,然后将拆分的内容分别写到给定的路径中去,自动创建文件夹,名字为txt文本文档的名字,拆分的内容保存的名字从0.txt--结束。
static void test6(){
String readPath = "E:\\CODE\\wtest2\\";
String writePath = "E:\\CODE\\wtest\\";
String result = "";
String filePath = "";
String[] strResult = null;
System.out.println("begin...");
File filetest6 = new File(readPath);
if(filetest6.isDirectory()){
String[] filenamelist = filetest6.list();
for(int n = 0; n < filenamelist.length; n++){
filePath = readPath + filenamelist[n];
// System.out.println(filePath);
//如果文件夹不存在则创建一个新的文件夹;
File fileCreate = new File(writePath + filenamelist[n].substring(0, filenamelist[n].lastIndexOf(".")));
if(!fileCreate.exists()){
fileCreate.mkdir();
}
try{
//从目标文件夹中读取文本文件并拆分成字符串
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "Unicode"));
String str = "";
StringBuffer strBuffer = new StringBuffer();
while((str = br.readLine()) != null){
strBuffer.append(str);
strBuffer.append("\n");
}
br.close();
result = strBuffer.toString();
strResult = result.split("\n");
// System.out.println(result);
//向目标文件中写如文件
for(int i = 0; i < strResult.length; i ++){
BufferedWriter writer = new BufferedWriter(new FileWriter(fileCreate.getAbsolutePath() + File.separator + i + ".txt"));
writer.write(strResult[i]);
writer.close();
}
}catch (Exception e) {
}
}
}
System.out.println("done");
}

7.String类型的字符串;进行删减的例子
String str = "corpus_数据库.txt";
// str = str.substring(0, str.length() - 4);
str = str.substring(0, str.lastIndexOf("."));
    结果都一样:corpus_数据库,即就是去掉后缀“。txt”

8.获取到给定路径下的所有文件夹的信息
File file = new File(testPath);
File files[] = file.listFiles(new java.io.FileFilter() {
            public boolean accept(File f) {
                return f.isDirectory() && !f.isHidden();
            }
        });
for(File f : files){
System.out.println(f.getName());
}

9.
原创粉丝点击