java读写

IO流下分为字节流与字符流,每个流又分为输入输出以及读写。

字节流的两个基类为InputStream与OutputStream。

字符流为Reader和Writer

一般的缓冲流读写字符:

BufferedReader br = new BufferedReader(new FileReader("b.txt"));

如果有编码格式的话使用:

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\test\\xiong.txt"), "gbk"));

读取一个文本里面的内容那个,并随机输出一行内容。

public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\test\\xiong.txt"), "gbk"));
        ArrayList<String> list = new ArrayList<String>();
        String line = null;
        while ((line=br.readLine())!=null){
            list.add(line);
        }
        int random = new Random().nextInt(list.size());
        System.out.println(list.get(random));
    }

复制文件夹下的文件,文件里有相片,视频所以使用字节流:

package cn;

import java.io.*;

public class FileDemo2 {
    public static void main(String[] args) throws IOException {
        File srcFolder = new File("d:\\demo");
        File destFolder = new File("d:\\test");
        if (!destFolder.exists()){
            destFolder.mkdir();
        }
        File[] files = srcFolder.listFiles();
        for (File file:files){
            File newFile = new File(destFolder, file.getName());
            copy(file, newFile);
        }
    }
    private static void copy(File file, File newFile) throws IOException{
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
        int len = 0;
        byte[] bys = new byte[1024];
        while ((len=bis.read(bys))!=-1){
            bos.write(bys, 0 , len);
        }     bis.close()    bos.close()
    }
}

将一个文件夹下的以.java结尾的文本文件复制到另一个文件夹并改为以.jad结尾

package cn;

import java.io.*;
import java.util.ArrayList;
import java.util.Random;

/**
 * Created by Administrator on 2015/3/11.
 */
public class FileDemo {
    public static void main(String[] args) throws IOException {
        File srcFolder = new File("c:\\java");
        File destFolder = new File("c:\\jad");
        if(!(destFolder.exists())){
            destFolder.mkdir();
        }
        File[] fileArray = srcFolder.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return new File(dir, name).isFile()&&name.endsWith(".java");
            }
        });
        for(File file:fileArray){
            String name = file.getName();
            File newFile = new File(destFolder, name);
            copy(file, newFile);
        }
        File[] destFileArray = destFolder.listFiles();
        for (File destFile:destFileArray){
            System.out.println(destFile);
            String name = destFile.getName();
            String newName = name.replace(".java", ".jad");
            File newFile = new File(destFolder, newName);
            destFile.renameTo(newFile);
        }
    }

    private static void copy(File file, File newFile) throws IOException{
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
        int len = 0;
        byte[] bys = new byte[1024];
        while ((len=bis.read(bys))!=-1){
            bos.write(bys, 0 , len);
        }
        bis.close();
        bos.close();
    }
}

复制一个文件夹下的所有内容到指定目录

package cn;

import java.io.*;
import java.util.ArrayList;
import java.util.Random;

/**
 * Created by Administrator on 2015/3/11.
 */
public class FileDemo {
    public static void main(String[] args) throws IOException {
        File srcFile = new File("d:\\demos");
        File destFile = new File("c:\\");
        copyFolder(srcFile, destFile);
    }

    private static void copyFolder(File srcFile, File destFile) throws IOException{
        if(srcFile.isDirectory()){
            File newFolder = new File(destFile, srcFile.getName());
            newFolder.mkdir();
            File[] fileArray = srcFile.listFiles();
            for (File file:fileArray){
                copyFolder(file, newFolder);
            }
        }else{
            File newFile = new File(destFile, srcFile.getName());
            copyFile(srcFile, newFile);
        }
    }

    private static void copyFile(File srcFile, File newFile) throws IOException{
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
        int len = 0;
        byte[] bys = new byte[1024];
        while ((len=bis.read(bys))!=-1){
            bos.write(bys, 0, len);
        }
        bis.close();
        bos.close();
    }
}
时间: 2024-10-27 11:12:51

java读写的相关文章

java读写文件

读文件 package tool; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.OutputStreamWriter; public class ReadFile { pu

Java 读写Properties配置文件

Java 读写Properties配置文件 1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集.不过Properties有特殊的地方,就是它的键和值都是字符串类型. 2.Properties中的主要方法 (1)load(InputStream inStream)   这个方法可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象.如下面的代码

Java读写Windows共享文件夹 .

版权声明:本文为博主原创文章,未经博主允许不得转载. 项目常常需要有访问共享文件夹的需求,例如共享文件夹存储照片.文件等.那么如何使用Java读写Windows共享文件夹呢? Java可以使用JCIFS框架对Windows共享文件夹进行读写,就这个框架可以让我们像访问本地文件夹一下访问远程文件夹. JCIFS的网址: http://jcifs.samba.org/ JCIFS是使用纯Java开发的一个开源框架,通过smb协议访问远程文件夹.该框架同时支持Windows共享文件夹和Linux共享文

Java读写文件的几种方式

自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行三种方式来进行文件的操作. import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.F

java 读写Oracle Blob字段

许久没有分享代码了,把这段时间写的一个Java操作Blob字段,有日子没写Java了,就当作笔记记录一下.1. [代码][Java]代码     跳至 [1] [全屏预览]package com.wanmei.meishu;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.InputStream;import java.io.OutputS

【转】Java 读写Properties配置文件

[转]Java 读写Properties配置文件 1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集.不过Properties有特殊的地方,就是它的键和值都是字符串类型. 2.Properties中的主要方法 (1)load(InputStream inStream)   这个方法可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象.如下面

java读写excel文件

需求:利用Java读写excel文件 利用jexcelapi实现Java读写excel文件的功能 首先下载并安装jexcelapi JExcelApi v2.6.12 (1911kbytes) 解压后把jxl.jar文件添加到Java Build Path中 Java读取excel文件 Java写入excel文件

如何使用Java读写系统属性?

如何使用Java读写系统属性? 读: Properties props = System.getProperties(); Enumeration prop_names = props.propertyNames(); while (prop_names.hasMoreElements()) { String prop_name = (String) prop_names.nextElement(); String property = props.getProperty(prop_name);

Java读写xml文件的一些经验(使用dom4j)

说来惭愧,给很多人说过怎么用Java读写xml,但是自己上手做的很少.这篇博客里面简单总结一下. 据网上很多文章介绍,dom4j是一种常用的xml读写API.不过用的时候首先要注意第一个问题:如果在Bing.com里搜索dom4j,排在第一名的是:http://www.dom4j.org/ 很遗憾,这个域名和dom4j没有任何关系,其在Sourceforge上的主页是:http://sourceforge.net/projects/dom4j/ ,我这里下载的是稳定版,将dom4j-1.6.1.

Java 读写TXT文件

public class GenCategoryAttrItemHandler { private final static String INPUT_FILE_PATH = "input/category_attr_item.txt"; private final static String OUTPUT_FLIE_PATH = "output/category_attr_itemList.txt"; /** * @param args * @throws IOE