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

用Java创建简单的数据输出文件,java,dataoutputstream,Java,Dataoutputstream,我正在尝试编写一个简单的数据输出文件。当我执行代码时,我得到一个“无文件存在”作为输出,并且在dir中没有创建data.txt文件 我错过了什么?奇怪的是,前几天晚上它工作得很好,但当我今天加载它再次测试时,发生了这种情况 代码如下: import java.io.*; import java.util.*; public class DataStreams { public static void main(String[] args) throws IOException {

我正在尝试编写一个简单的数据输出文件。当我执行代码时,我得到一个“无文件存在”作为输出,并且在dir中没有创建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");
        }
    }
}
import java.io.*;
导入java.util.*;
公共类数据流{
公共静态void main(字符串[]args)引发IOException{
试一试{
DataOutputStream out=新的DataOutputStream(新文件OutputStream(“C:\\data.txt”);
对于(int i=0;i<10;i++){
写出(i);
}
}捕获(ioe异常ioe){
System.out.println(“不存在文件”);
}
}
}
数据文件应该是数字1到9的简单显示


感谢您的输入。

在c.中创建一个名为data.txt的文本文件。您必须已删除该文件。手动创建该文件将在Windows平台上运行,默认情况下,
C:\
是受限制的路径。以前,应用程序可能以管理员身份运行,允许访问

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

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

您应该看看异常本身:

System.out.println("No file exist");
System.out.println(ex.getMessage());
也许您没有必要的权限,无法使用您的程序访问
C:\

  • 要将数据写入文件,您应该首先创建它,或者检查它是否存在。否则,将引发IOException
  • 默认情况下,在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");
        }
    }
    
    publicstaticvoidmain(字符串[]args)引发IOException{
    文件输出=新文件(“data.txt”);
    如果(!output.exists())output.createNewFile();
    试一试{
    DataOutputStream out=新的DataOutputStream(新文件OutputStream(输出));
    对于(int i=0;i<10;i++){
    写出(i);
    }
    }捕获(ioe异常ioe){
    System.out.println(“不存在文件”);
    }
    }
    

  • 嗯,在删除并重新输入我想将文件写入的目录地址后,它工作了。我还没有回答我的问题,以防有人补充为什么它最初可能不起作用。我很抱歉在发布问题之前没有对这个想法进行故障排除。请尝试在catch块中使用ioe.printStackTrace()打印引发的异常。然后您可以确认什么是异常。