Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用FileInputStream和FileOutputStream_Java_Fileinputstream_Fileoutputstream - Fatal编程技术网

Java 使用FileInputStream和FileOutputStream

Java 使用FileInputStream和FileOutputStream,java,fileinputstream,fileoutputstream,Java,Fileinputstream,Fileoutputstream,嗨,我有几个关于使用FileInputStream和FileOutputStream类的问题 FileInputStream对象如何定位它试图读入的文件? FileOutputStream将文件保存到哪里? 谢谢。奇怪的问题,我会给出一个奇怪的答案 第一部分:两者都不要使用,使用文件: 请注意,路径对象本质上是抽象的:没有任何东西可以保证它们指向有效的条目。如果没有,上面的Files方法将抛出NoSuchFileException文件不存在,或者AccessDeniedException对不起,

嗨,我有几个关于使用FileInputStream和FileOutputStream类的问题

FileInputStream对象如何定位它试图读入的文件? FileOutputStream将文件保存到哪里?
谢谢。

奇怪的问题,我会给出一个奇怪的答案

第一部分:两者都不要使用,使用文件:

请注意,路径对象本质上是抽象的:没有任何东西可以保证它们指向有效的条目。如果没有,上面的Files方法将抛出NoSuchFileException文件不存在,或者AccessDeniedException对不起,伙计,你不能这样做,或者任何相关的异常

第二部分:文件*流

基本原理是一样的:如果你坚持使用Java6,你必须使用文件而不是路径,但是文件和路径一样抽象;它可能指向,也可能不指向有效位置

当您发出:

final String dst = "/some/file";
new FileOutputStream(dst);
在内部,FileOutputStream将创建一个文件对象;这意味着上述内容相当于:

final String dst = "/some/file";
final File f = new File(dst);
new FileOutputStream(f);
结论:不,文件*流本身不知道文件是否存在,只要它不尝试打开它。路径和文件都是完全抽象的,除非您尝试使用它们


帮自己一个忙:使用Java7+提供的新文件API。您是否尝试过使用存在但无法读取的文件启动FileInputStream?FileNotFoundException。无聊的。Files.newInputStream至少会抛出一个有意义的异常…

通常,您只需将文件对象传递给流实例化

FileInputStream is = new FileInputStream(f);
FileOutputStream os = new FileOutputStream(f);
BufferedInputStream is2 = new BufferedInputStream(is);
BufferedOutputStream os2 = new BufferedOutputStream(os);

也考虑在使用文本文件时使用PrimTrrIt作为输出流。

关于流: 流是允许应用程序与其他程序通信的对象

为了直接回答您的问题,在Java中,我将如何使用流

//You need to import a few classes before you begin
import java.io.FileInputStream;
import java.io.FileOutputStream;
你可以这样申报

FileInputStream is = new FileInputStream("filename.txt"); //this file should be located within the project folder
对于输出流,可以通过类似的方式访问:

FileOutputStream os = new FileOutputStream("filename.txt"); //this file should be located within the project folder
更多信息:

我建议在尝试写入文本文件时使用PrintWriter。为此,您将实现以下功能:

import java.io.PrintWriter;
然后使用此命令写入文件:

PrintWriter pw = new PrintWriter(OUTPUT_STREAM);
我还建议在读取用户数据时使用Scanner类:

import java.util.Scanner;
然后使用此选项读取输入:

Scanner kb = new Scanner(INPUT_STREAM); //now you can access this data by using methods such as nextInt, nextDouble, etc...

看看这个世界;两者都在其构造函数中接受字符串或文件。@radiodef nope。我只是在一个例子中看到的。
Scanner kb = new Scanner(INPUT_STREAM); //now you can access this data by using methods such as nextInt, nextDouble, etc...