java文件流输入FileInputStream类中如何判断文件打开是不是成功

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java文件流输入FileInputStream类中如何判断文件打开是不是成功相关的知识,希望对你有一定的参考价值。

比如
FileInputStream inFile;
inFile=new FileInputStream("c:\\java\\nan.txt);
如何判断文件打开是否成功?

你需要判断的不是FileInputStream类,参考代码如下:
//1.写入属性
//import java.io.*;
File filereadonly=new File(str1);
try
boolean b=filereadonly.setReadOnly();

catch (Exception e)
System.out.println("拒绝写访问:"+e.printStackTrace());


//2.读取文件
//import java.io.*;
// 逐行读取数据
FileReader fr = new FileReader(str1);
BufferedReader br = new BufferedReader(fr);
String str2 = br.readLine();
while (str2 != null)
str3
str2 = br.readLine();

br.close();
fr.close();

//3.移动文件夹
//import java.io.*;
//import java.util.*;
LinkedList<String> folderList = new LinkedList<String>();
folderList.add(str1);
LinkedList<String> folderList2 = new LinkedList<String>();
folderList2.add(str2 + str1.substring(str1.lastIndexOf("\\")));
while (folderList.size() > 0)
(new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹
File folders = new File(folderList.peek());
String[] file = folders.list();
File temp = null;
try
for (int i = 0; i < file.length; i++)
if (folderList.peek().endsWith(File.separator))
temp = new File(folderList.peek() + File.separator + file[i]);
else
temp = new File(folderList.peek() + File.separator + file[i]);

if (temp.isFile())
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(
folderList2.peek() + File.separator + (temp.getName()).toString());
byte[] b = new byte[5120];
int len;
while ((len = input.read(b)) != -1)
output.write(b, 0, len);

output.flush();
output.close();
input.close();
if (!temp.delete())
System.out.println("删除单个文件操作出错!");

if (temp.isDirectory()) // 如果是子文件夹
for (File f : temp.listFiles())
if (f.isDirectory())
folderList.add(f.getPath());
folderList2.add(folderList2.peek() + File.separator + f.getName());




catch (Exception e)
// System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace();

folderList.removeFirst();
folderList2.removeFirst();

File f = new File(str1);
if (!f.delete())
for (File file : f.listFiles())
if (file.list().length == 0)
System.out.println(file.getPath());
file.delete();


参考技术A 也就是判断文件是否存在?

可以先实例一个File对象!方法exist()检查File是否存在!!

例如:

File file=new File(("c:\\java\\nan.txt");

if(file.exist())FileInputStream inFile=new FileInputStream(file);本回答被提问者和网友采纳
参考技术B 也就是判断文件是否存在?

可以先实例一个File对象!方法exist()检查File是否存在!!

例如:

File file=new File(("c:\\java\\nan.txt");

if(file.exist())FileInputStream inFile=new FileInputStream(file);
参考技术C

你应该问的是文件是否存在吧??

File file=new File("xxx.xls");
//判断文件是否存在
if(file.exists)
  FileInputStream fis=new FileInputStream(file);

参考技术D try
InputStreamReader isr = new InputStreamReader(new FileInputStream("*.*"));
catch (FileNotFoundException e)
// TODO Auto-generated catch block
e.printStackTrace();

Java中的输入输出流

FileInputStream和FileOutputStream

  创建含磁盘文件的输入 输出流对象。

  FileInputStream继承自InputStream,用于读取本地文件中的字节数据,由于所有的文件都是字节为导向,所以这个类适合于操作任何类型的文件。

构造方法:

 实例:FileInputStream fileInputStream = new FileInputStream(new File("path"));

其他方法:

read()方法:从输入流中读取最多b.length个字节的数据存入一个byte数组中,返回剩余待读取的字节长度。

 

FileOutputStream继承自OutputStream,可以指定还不存在的文件名,但是不能指定一个已经被其他程序打开的文件。

 实例:FileOutputStream fileOutputStream = new FileOutputStream(new File("existornotexistpath"));

实例:fileOutputStream.write("String".getByte());//将字符串转换为字节数组并写入输出流中。

ByteArrayInputStream

继承自InputStream,ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪
read 方法要提供的下一个字节。

其他方法:

 

ByteArrayOutputStream

继承自OutputStream,此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray()toString() 获取数据。

其他方法:

 

以上是关于java文件流输入FileInputStream类中如何判断文件打开是不是成功的主要内容,如果未能解决你的问题,请参考以下文章

FileInputStream

Java中的输入输出流

java ------ I/O 读写文件

java ------ I/O 读写文件

Java核心类库-IO-文件流概述和系统属性

加载字体文件时的Eclipse Java文件FileInputStream与输入流[重复]