java IO流的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java IO流的问题相关的知识,希望对你有一定的参考价值。

这个是我合并两个文件到第三个文件的代码 但我想使它中间能够加一个功能 能够判断这个文件夹是否存在 如果不存在的话就建立一个新的文件夹 望高手为我添加一下代码 谢谢

package com;

import java.io.*;
public class hebing

public final String str = "d:\\人才啊/123.txt";
public final String str1 = "d:\\人才啊/321.txt";
public final String str2="d:\\人才啊/333.txt";

public InputStream getFileStream(String fileName) throws FileNotFoundException

FileInputStream fis = new FileInputStream(new File(fileName));
return fis;


private void combinFile() throws IOException
FileOutputStream fos = new FileOutputStream(new File(str2));
InputStream fis1 = getFileStream(str);
InputStream fis2 = getFileStream(str1);
int len = 0;
while((len=fis1.read())!=-1)

fos.write(len);

System.out.println("第一个文件找到.");
fis1.close();
fos.flush();

while((len=fis2.read())!=-1)
fos.write(len);


System.out.println("第二个文件找到");
fis2.close();
fos.flush();
fos.close();

System.out.println("文件合并");


public static void main(String[] args)

try

new hebing().combinFile();

catch (IOException e)

e.printStackTrace();


/**
* @author wsj
* @date 2010-7-24, 上午12:08:55
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class hebing

public final String str = "d:\\人才啊/123.txt";
public final String str1 = "d:\\人才啊/321.txt";
public final String str2 = "d:\\人才啊/333.txt";

public InputStream getFileStream(String fileName)
throws FileNotFoundException
FileInputStream fis = new FileInputStream(new File(fileName));
return fis;


private void combinFile() throws IOException
FileOutputStream fos = new FileOutputStream(new File(str2));
/**
* 修改开始
*/
String saveBasePath=str2.substring(0,str2.lastIndexOf("/"));
File saveDir=new File(saveBasePath);
if(!saveDir.exists()) saveDir.mkdirs();//建立多级目录
/**
* 修改结束
*/
InputStream fis1 = getFileStream(str);
InputStream fis2 = getFileStream(str1);
int len = 0;
while ((len = fis1.read()) != -1)
fos.write(len);

System.out.println("第一个文件找到.");
fis1.close();
fos.flush();

while ((len = fis2.read()) != -1)
fos.write(len);


System.out.println("第二个文件找到");
fis2.close();
fos.flush();
fos.close();

System.out.println("文件合并");


public static void main(String[] args)
try
new hebing().combinFile();
catch (IOException e)
e.printStackTrace();


参考资料:有问题,给我发百度消息

参考技术A if(!saveDir.exists())
if (saveDir.isDirectory)
saveDir.mkdirs();//建立多级目录
if (saveDir.isFile)
saveDir.createNewFile();

java的io中为啥有那么多种流啊?

一直对java的io各种流感到很困惑和不理解
1、为什么要弄出流这么个东东
2、java中为什么搞出那么多种流,该如何掌握啊?
3、一般哪些流是常用的,要熟练掌握?
4、一般什么情况用字节流,什么情况用字符流?

1.因为java要和各种其他的譬如电脑文档等交换信息,就有了输入输出流。
2.从最简单的输入输出流懂起,以后遇到什么解决什么。
3.两大类,字节流和字符流
字节流 :BufferedInputStream,BufferedOutputStream,FileInputStream ,FileOutputStream
字符流:BufferedReader,BufferedWriter,FileReader,FileWriter
4.在读写二进制数据时就会使用字节流。在设计用于处理字符输入输出时用的是Unicode,所以要用字符流,在某些情况下,字符流比字节流更高效。字节流和字符流的功能大部分是并行的。
参考技术A 总共就是两个流阿:字节,字符

字节流可用于任何类型的对象,
而字符流只能处理字符或者字符串,Unicode字符;
也就是说 字节流可以读写所有的文件,
而字符流只能读写文本文件。不能读像音频电影之类的
但是能用字符流的时候就不要用字节流,因为字符流的读写效率更高一些。

以上是关于java IO流的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于java中io流的关闭问题,部分代码,这种情况用不用关闭new FileReader(file)?

2.最简单java理解IO流的使用(原理)

2.最简单java理解IO流的使用(原理)

2.最简单java理解IO流的使用(原理)

java的io中为啥有那么多种流啊?

java.io.EOFException:ZLIB输入流的意外结束 - 从HTTP读取