下面代码是我照着书练习碰到的问题?不知道错误是什么原因?package problem;import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Scanner;
public class Doubler {
private ObjectInputStream inputStream ;
private ObjectOutputStream outputStream ;
public static void main(String[] args){
Doubler twoTimer = new Doubler();
twoTimer.connectToInputFile();
twoTimer.connetToOutputFile();
twoTimer.timeTwo();
twoTimer.closeFile();
System.out.println("Numbers from input file .");
System.out.println("Doubled and copied to output file .");
}
public void connetToOutputFile(){
String outputFileName = getFileName("Enter output file name :");
try {
outputStream = new ObjectOutputStream(new FileOutputStream(outputFileName));
} catch (IOException e) {
System.out.println("Error opening output file :" + outputFileName);
System.out.println(e.getMessage());
System.exit(0);
}
}
public void connectToInputFile(){
String inputFileName = getFileName("Enter input file name :");
//////////////////////////////////////////////////////////////////////////////////
//这个函数不管我怎么输入文件名,都直接抛出IO异常,不知道怎么回事?
try {
inputStream = new ObjectInputStream(new FileInputStream(inputFileName));
}
catch (FileNotFoundException e) {
System.out.println("File " + inputFileName + "not found .");
System.exit(0);
}
catch (IOException e) {
System.out.println("Error opening input File :" + inputFileName);
System.exit(0);
} //////////////////////////////////////////////////////////////////////////////////////
}
private String getFileName(String prompt){
System.out.println(prompt);
Scanner in = new Scanner(System.in);
String fileName = in.nextLine();
return fileName;
}
public void timeTwo(){
int next;
try {
while(true){
next = inputStream.readInt();
outputStream.writeInt(2*next);
}
}
catch (EOFException e) {
;
}
catch (IOException e) {
System.out.println("Error: Reading or writing files .");
System.out.println(e.getMessage());
System.exit(0);
}
}
public void closeFile(){
try {
inputStream.close();
outputStream.close();
}
catch (IOException e) {
System.out.println("Error closing files " + e.getMessage());
System.exit(0);
}
}
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Scanner;
public class Doubler {
private ObjectInputStream inputStream ;
private ObjectOutputStream outputStream ;
public static void main(String[] args){
Doubler twoTimer = new Doubler();
twoTimer.connectToInputFile();
twoTimer.connetToOutputFile();
twoTimer.timeTwo();
twoTimer.closeFile();
System.out.println("Numbers from input file .");
System.out.println("Doubled and copied to output file .");
}
public void connetToOutputFile(){
String outputFileName = getFileName("Enter output file name :");
try {
outputStream = new ObjectOutputStream(new FileOutputStream(outputFileName));
} catch (IOException e) {
System.out.println("Error opening output file :" + outputFileName);
System.out.println(e.getMessage());
System.exit(0);
}
}
public void connectToInputFile(){
String inputFileName = getFileName("Enter input file name :");
//////////////////////////////////////////////////////////////////////////////////
//这个函数不管我怎么输入文件名,都直接抛出IO异常,不知道怎么回事?
try {
inputStream = new ObjectInputStream(new FileInputStream(inputFileName));
}
catch (FileNotFoundException e) {
System.out.println("File " + inputFileName + "not found .");
System.exit(0);
}
catch (IOException e) {
System.out.println("Error opening input File :" + inputFileName);
System.exit(0);
} //////////////////////////////////////////////////////////////////////////////////////
}
private String getFileName(String prompt){
System.out.println(prompt);
Scanner in = new Scanner(System.in);
String fileName = in.nextLine();
return fileName;
}
public void timeTwo(){
int next;
try {
while(true){
next = inputStream.readInt();
outputStream.writeInt(2*next);
}
}
catch (EOFException e) {
;
}
catch (IOException e) {
System.out.println("Error: Reading or writing files .");
System.out.println(e.getMessage());
System.exit(0);
}
}
public void closeFile(){
try {
inputStream.close();
outputStream.close();
}
catch (IOException e) {
System.out.println("Error closing files " + e.getMessage());
System.exit(0);
}
}
}
File f = new File("C://1.txt");
File g = new File("C:\1.txt");
System.out.println("Error opening input File :" + inputFileName);
这一句了
不过这样一来每次都得先写进去,才能读出来而不能读一个已经存在的文件了
我帮里试了下,先writeInt()后再读取可以。不会有异常。
我也试了没错,用writeInt()先写入后可以打开文件并读取信息。。
我也试了没错,用writeInt()先写入后可以打开文件并读取信息。。
我也试了没错,用writeInt()先写入后可以打开文件并读取信息。。