0

我正在尝试编写一个简单的数据输出文件。当我执行代码时,我得到一个“不存在文件”作为输出,并且在目录中没有创建 data.txt 文件。

我错过了什么?奇怪的是,前几天晚上它工作得很好,但是当我今天加载它再次测试它时,发生了这种情况。

这是代码:

import java.io.*;
import java.util.*;

public class DataStreams {

    public static void main(String[] args) throws IOException {

        try {

            DataOutputStream out = new DataOutputStream(new FileOutputStream("C:\\data.txt"));
            for (int i = 0; i < 10; i++) {
                out.write(i);
            }
        } catch (IOException ioe) {
            System.out.println("No file exist");
        }
    }
}

数据文件应该是数字 1 到 9 的简单显示。

感谢您的输入。

4

4 回答 4

0

在 c: 中创建一个名为 data.txt 的文本文件。您必须已删除该文件。手动创建该文件将起作用

于 2014-04-06T19:05:29.620 回答
0

在 Windows 平台上,C:\默认情况下是受限路径。以前,该应用程序可能已作为administrator允许访问运行。

解决方案:使用不同的位置

DataOutputStream out = 
    new DataOutputStream(new FileOutputStream("C:/temp/data.txt"));
于 2014-04-06T19:07:29.570 回答
0

你应该看看异常本身:

System.out.println("No file exist");
System.out.println(ex.getMessage());

也许您没有必要的权限来访问C:\您的程序。

于 2014-04-06T19:08:16.843 回答
0
  1. 要将数据写入文件,您应该首先创建它,或者检查它是否存在。否则将引发 IOException。
  2. 默认情况下,在 C:\ 中写入是被拒绝的,因此在您的情况下,即使您创建了文件,您也会收到带有 Access denied 消息的 IOException。

    public static void main(String[] args) throws IOException {
        File output = new File("data.txt");
        if(!output.exists()) output.createNewFile();
        try {
            DataOutputStream out = new DataOutputStream(new FileOutputStream(output));
            for (int i = 0; i < 10; i++) {
                out.write(i);
            }
        } catch (IOException ioe) {
            System.out.println("No file exist");
        }
    }
    
于 2014-04-06T19:14:24.290 回答