Java 文件输出/输入异常
这个程序在终端窗口中给我一个“异常”。prevData.txt的位置如代码所示。我有什么问题 我用的是Bluej。还有其他问题吗?请问Java 文件输出/输入异常,java,file,exception,input,output,Java,File,Exception,Input,Output,这个程序在终端窗口中给我一个“异常”。prevData.txt的位置如代码所示。我有什么问题 我用的是Bluej。还有其他问题吗?请问 import java.io.*; public class prevDataReset{ public static void main(String args[]){ try{ byte bWrite [] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; OutputStream os
import java.io.*;
public class prevDataReset{
public static void main(String args[]){
try{
byte bWrite [] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
OutputStream os = new FileOutputStream("C:/prevData.txt");
for(int x=0; x < bWrite.length ; x++){
os.write( bWrite[x] ); // writes the bytes
}
os.close();
InputStream is = new FileInputStream("C:/prevData.txt");
int size = is.available();
for(int i=0; i< size; i++){
System.out.print((double)is.read() + " ");
}
is.close();
}catch(IOException e){
System.out.print("Exception");
}
}
}
import java.io.*;
公共类prevDataReset{
公共静态void main(字符串参数[]){
试一试{
字节bWrite[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
OutputStream os=新文件OutputStream(“C:/prevData.txt”);
对于(int x=0;x
这对我很有用。我建议您没有写入“C:\”的写入权限,请尝试使用user.dir
系统属性
类似于
public class SimpleTest {
public static void main(String args[]) {
OutputStream os = null;
InputStream is = null;
try {
String userDir = System.getProperty("user.dir");
byte bWrite[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
try {
os = new FileOutputStream(userDir + File.separator + "prevData.txt");
for (int x = 0; x < bWrite.length; x++) {
os.write(bWrite[x]); // writes the bytes
}
} finally {
try {
os.close();
} catch (Exception e) {
}
}
try {
is = new FileInputStream(userDir + File.separator + "prevData.txt");
int size = is.available();
for (int i = 0; i < size; i++) {
System.out.print((double) is.read() + " ");
}
} finally {
try {
is.close();
} catch (Exception e) {
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
公共类SimpleTest{
公共静态void main(字符串参数[]){
OutputStream os=null;
InputStream=null;
试一试{
字符串userDir=System.getProperty(“user.dir”);
字节bWrite[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
试一试{
os=新文件输出流(userDir+File.separator+“prevData.txt”);
对于(int x=0;x
执行此代码并将catch块更改为e.printStackTrace()代码>而不仅仅是System.out.println(“异常”)代码>产生了以下错误:
java.io.FileNotFoundException: C:\prevData.txt (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
at fileexception.prevDataReset.main(prevDataReset.java:11)
java.io.FileNotFoundException:C:\prevData.txt(访问被拒绝)
在java.io.FileOutputStream.open(本机方法)
位于java.io.FileOutputStream。(FileOutputStream.java:179)
位于java.io.FileOutputStream。(FileOutputStream.java:70)
位于fileexception.prevDataReset.main(prevDataReset.java:11)
请确保目录可写/可读,然后重试。我刚试过
import java.io.*;
public class prevDataReset {
public static void main(String args[]){
try{
byte bWrite [] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
OutputStream os = new FileOutputStream("C:/prevData.txt");
for(int x=0; x < bWrite.length ; x++){
os.write( bWrite[x] ); // writes the bytes
}
os.close();
InputStream is = new FileInputStream("C:/prevData.txt");
int size = is.available();
for(int i=0; i < size; i++){
System.out.print((double)is.read() + " ");
}
is.close();
}
catch(IOException e){
System.out.print("Exception");
}
}
}
导入java.io.*;
公共类prevDataReset{
公共静态void main(字符串参数[]){
试一试{
字节bWrite[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
OutputStream os=新文件OutputStream(“C:/prevData.txt”);
对于(int x=0;x
而且效果很好
问题不在那段代码中
希望这有帮助。打印stacktrace而不是“Exception”…这会更有帮助。您应该打印e.getMessage(),这可能会很方便。我看到的第一个危险信号是windows路径使用\而不是/。试试看。然后尝试将prevData与javascript文件放在同一文件夹中,并使其成为相对路径,而不是System.out.print(“异常”)代码>,请使用e.printStackTrace()代码>然后发布跟踪。