完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径。)

完美解决 JavaIO 流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径。)

错误原因

读出文件的路径需要有被拷贝的文件名,否则无法解析地址

Alt 错误示例

源代码(用于拷贝)

package com.javase.IO.Stream;

import org.junit.Test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyPicture {
@Test
public void copy(){
File srcFile = new File("D:\test.jpg");
File destFile = new File("F:\");
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(srcFile);
fos = new FileOutputStream(destFile);

        <span class="hljs-type">byte</span>[] bytes = <span class="hljs-keyword">new</span> <span class="hljs-title class_">byte</span>[<span class="hljs-number">1024</span> * <span class="hljs-number">1024</span>];
        <span class="hljs-type">int</span> <span class="hljs-variable">len</span> <span class="hljs-operator">=</span> <span class="hljs-number">0</span>;
        <span class="hljs-keyword">while</span>((len = fis.read(bytes)) != -<span class="hljs-number">1</span>){
            fos.write(bytes,<span class="hljs-number">0</span>,len);
        }
        fos.flush();
    } <span class="hljs-keyword">catch</span> (IOException e) {
        e.printStackTrace();
    } <span class="hljs-keyword">finally</span> {
        <span class="hljs-keyword">try</span> {
            <span class="hljs-keyword">if</span> (fis != <span class="hljs-literal">null</span>) {
                fis.close();
            }
        } <span class="hljs-keyword">catch</span> (IOException e) {
            e.printStackTrace();
        }
        <span class="hljs-keyword">try</span> {
            <span class="hljs-keyword">if</span> (fos != <span class="hljs-literal">null</span>) {
                fos.close();
            }
        } <span class="hljs-keyword">catch</span> (IOException e) {
            e.printStackTrace();
        }
    }
}

}

修改后的代码

package com.javase.IO.Stream;

import org.junit.Test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyPicture {
@Test
public void copy(){
File srcFile = new File("D:\test.jpg");
File destFile = new File("F:\test.jpg");
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(srcFile);
fos = new FileOutputStream(destFile);

        <span class="hljs-type">byte</span>[] bytes = <span class="hljs-keyword">new</span> <span class="hljs-title class_">byte</span>[<span class="hljs-number">1024</span> * <span class="hljs-number">1024</span>];
        <span class="hljs-type">int</span> <span class="hljs-variable">len</span> <span class="hljs-operator">=</span> <span class="hljs-number">0</span>;
        <span class="hljs-keyword">while</span>((len = fis.read(bytes)) != -<span class="hljs-number">1</span>){
            fos.write(bytes,<span class="hljs-number">0</span>,len);
        }
        fos.flush();
    } <span class="hljs-keyword">catch</span> (IOException e) {
        e.printStackTrace();
    } <span class="hljs-keyword">finally</span> {
        <span class="hljs-keyword">try</span> {
            <span class="hljs-keyword">if</span> (fis != <span class="hljs-literal">null</span>) {
                fis.close();
            }
        } <span class="hljs-keyword">catch</span> (IOException e) {
            e.printStackTrace();
        }
        <span class="hljs-keyword">try</span> {
            <span class="hljs-keyword">if</span> (fos != <span class="hljs-literal">null</span>) {
                fos.close();
            }
        } <span class="hljs-keyword">catch</span> (IOException e) {
            e.printStackTrace();
        }
    }
}

}