标签: fileinputstream

使用url的Java fileinputstream

如何在fileinputstream中输入一个文件到url?

我输入了Fileinputstream中的url,但是URL的输出是错误的,因为链接斜杠向后转向 - 从/到\和双斜杠//只有一个斜杠和向后.有一种方法fileinputstream要做到这一点?如果不是,你能告诉我应该使用什么而不是fileinputstream吗?

java fileinputstream

19
推荐指数
1
解决办法
4万
查看次数

如何从资源文件夹中获取文件.Spring框架

我正在尝试解组我的xml文件:

public Object convertFromXMLToObject(String xmlfile) throws IOException {
    FileInputStream is = null;
    File file = new File(String.valueOf(this.getClass().getResource("xmlToParse/companies.xml")));
    try {
        is = new FileInputStream(file);
        return getUnmarshaller().unmarshal(new StreamSource(is));
    } finally {
        if (is != null) {
            is.close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:java.io.FileNotFoundException:null(没有这样的文件或目录)

这是我的结构:

在此输入图像描述

为什么我无法从资源文件夹中获取文件?谢谢.

更新.

重构后,

URL url = this.getClass().getResource("/ xmlToParse/companies.xml"); 文件文件=新文件(url.getPath());

我可以更清楚地看到错误:

java.io.FileNotFoundException:/content/ROOT.war/WEB-INF/classes/xmlToParse/companies.xml(没有这样的文件或目录)

它试图找到WEB-INF/classes /我在那里添加了文件夹,但仍然收到此错误:(

在此输入图像描述

java spring-mvc fileinputstream java-io

19
推荐指数
3
解决办法
6万
查看次数

FileInputStream不适用于相对路径

我试图从中创建一个对象FileInputStream并将文件的相对值传递给它的构造函数,但它无法正常工作并抛出一个FileNotFoundException

try {
   InputStream is = new FileInputStream("/files/somefile.txt");
} catch (FileNotFoundException ex) {
   System.out.println("File not found !");
}
Run Code Online (Sandbox Code Playgroud)

java filenotfoundexception fileinputstream

17
推荐指数
3
解决办法
8万
查看次数

在创建FileInputStream对象时使用InputStream而不是FileInputStream有什么区别

这可能是一个愚蠢的,但我想知道背景操作的差异.

  1. InputStream is = new FileInputStream(filepath);
  2. FileInputStream is = new FileInputStream(filepath);

上面两行代码之间的区别是什么,以及它们使用的场景.

java inputstream file fileinputstream java-io

17
推荐指数
2
解决办法
2万
查看次数

ObjectInputStream对FileInputStream很满意,对getResourceAsStream不满意

我有一些非常标准的代码,它从流中获取一个序列化对象,基本上看起来像这样:

  Object getObjectFromStream(InputStream is) {
    ObjectInputStream ois = new ObjectInputStream(is);
    return ois.readObject();
  }

然后我在我的资源文件夹中有一个文件,所以在我的开发机器上,我可以将它作为文件引用,或者作为JarResource引用:

  InputStream is = new FileInputStream("/home/.../src/main/resources/serializedObjects/testObject");
  InputStream is = this.getClass().getResourceAsStream("/serializedObjects/testObject");

在我的脑海中,两者都应该做同样的事情.然而,当它发生时,两者都解析为有效(非空)流,但FileInputStream正确地从我的getObjectFromStream(InputStream)方法返回一个Object,而getResourceAsStream版本抛出此异常:

  java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:800)
    at java.io.ObjectInputStream.(ObjectInputStream.java:297)

大多数情况下,我想知道如何解决这个问题,但我也很欣赏理解两个InputStream之间的区别......

java inputstream fileinputstream objectinputstream

14
推荐指数
3
解决办法
7993
查看次数

强制删除文件夹中的所有文件

我一直在使用一段特定的代码来删除文件夹中的文件,但事实证明它很成问题,因为我可能忘了关闭一两个InputStream.我的代码是如此之大,以至于我无法看到所有未关闭的输入流.有没有办法删除文件是否有一个打开的InputStream?

这是我一直在使用的代码片段;

File fin = new File("C:/ABC Statements final/");
    File[] finlist = fin.listFiles();       
    for (int n = 0; n < finlist.length; n++) {
        if (finlist[n].isFile()) {
        System.gc();
        Thread.sleep(2000);
            finlist[n].delete();
        }
    }        
Run Code Online (Sandbox Code Playgroud)

我编辑了代码.这个版本有效.

java file-io fileinputstream delete-file

14
推荐指数
2
解决办法
6万
查看次数

如何在Android中创建ZIP InputStream而不先创建ZIP文件?

我在我的Android APP中使用NanoHTTPD作为Web服务器,我希望在服务器端压缩一些文件并创建一个InputStream,然后使用Code A在客户端下载InputStream.

我在如何压缩和解压缩文件中读过代码B ,但如何在Android中创建ZIP InputStream而不首先创建ZIP文件?

顺便说一句,我不认为Code C是好方法,因为它先制作ZIP文件,然后将ZIP文件转换为FileInputStream,我希望直接创建一个ZIP InputStream!

代码A.

private Response ActionDownloadSingleFile(InputStream fis)    {      
    Response response = null;
    response = newChunkedResponse(Response.Status.OK, "application/octet-stream",fis);
    response.addHeader("Content-Disposition", "attachment; filename="+"my.zip");
    return response;
}
Run Code Online (Sandbox Code Playgroud)

代码B.

public static void zip(String[] files, String zipFile) throws IOException {
    BufferedInputStream origin = null;
    ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
    try { 
        byte data[] = new byte[BUFFER_SIZE];

        for (int i = 0; i < files.length; i++) {
            FileInputStream fi = new FileInputStream(files[i]);    
            origin = new BufferedInputStream(fi, …
Run Code Online (Sandbox Code Playgroud)

java android zipfile fileinputstream fileoutputstream

14
推荐指数
1
解决办法
2110
查看次数

如何在文件中的特定位置写入内容

假设我有一个名为abhishek.txt的文件,其中包含以下行

我是,你叫什么名字.

现在我想写

阿布舍克

在"我"之后,就像我是Abhishek,..如何直接在这个特定的位置写出内容.

java inputstream textinput fileinputstream

12
推荐指数
2
解决办法
3万
查看次数

如何创建多个图像文件的zip文件

我正在尝试创建多个图像文件的zip文件.我已成功创建所有图像的zip文件,但不知何故所有图像都被挂起到950字节.我不知道这里出了什么问题现在我无法打开图像被压缩成那个zip文件.

这是我的代码.任何人都可以让我知道这里发生了什么?

String path="c:\\windows\\twain32";
File f=new File(path);
f.mkdir();
File x=new File("e:\\test");
x.mkdir();
byte []b;
String zipFile="e:\\test\\test.zip";
FileOutputStream fout=new FileOutputStream(zipFile);
ZipOutputStream zout=new ZipOutputStream(new BufferedOutputStream(fout));


File []s=f.listFiles();
for(int i=0;i<s.length;i++)
{
    b=new byte[(int)s[i].length()];
    FileInputStream fin=new FileInputStream(s[i]);
    zout.putNextEntry(new ZipEntry(s[i].getName()));
    int length;
    while((length=fin.read())>0)
    {
        zout.write(b,0,length);
    }
    zout.closeEntry();
    fin.close();
}
zout.close();
Run Code Online (Sandbox Code Playgroud)

java zip file fileinputstream zipoutputstream

11
推荐指数
2
解决办法
2万
查看次数

读/写文件到内部私有存储

我正在将应用程序从Symbian/iPhone移植到Android,其中一部分是将一些数据保存到文件中.我使用FileOutputStream将文件保存到私有文件夹/ data/data/package_name/files中:

FileOutputStream fos = iContext.openFileOutput( IDS_LIST_FILE_NAME, Context.MODE_PRIVATE ); 
fos.write( data.getBytes() ); 
fos.close();
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找一种如何加载它们的方法.我正在使用FileInputStream,但它允许我逐字节读取文件,这是非常低效的:

int ch;
StringBuffer fileContent = new StringBuffer("");
FileInputStream fis = iContext.openFileInput( IDS_LIST_FILE_NAME );
while( (ch = fis.read()) != -1)
  fileContent.append((char)ch);
String data = new String(fileContent);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何使用更好的方式读取文件?

file-io android fileinputstream fileoutputstream android-file

10
推荐指数
2
解决办法
4万
查看次数