用Java创建一个简单的数据输出文件

时间:2014-04-06 19:01:40

标签: java dataoutputstream

我正在尝试编写一个简单的数据输出文件。当我执行代码时,我得到一个“没有文件存在”作为输出,并且在目录中没有创建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 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

解决方案:使用其他位置

DataOutputStream out = 
    new DataOutputStream(new FileOutputStream("C:/temp/data.txt"));

答案 2 :(得分:0)

您应该查看异常本身:

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

也许您没有必要的权利,可以通过您的计划访问C:\

答案 3 :(得分:0)

  1. 要将数据写入文件,首先应创建它,或者检查它是否存在。否则,将引发IOException。
  2. 默认情况下,在C:\中写入被拒绝,因此在您的情况下,即使您创建了该文件,也会收到带有拒绝访问消息的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");
        }
    }