我非常感谢你帮助解决这个问题。 在我的项目中,我有一项任务要做。以下是涉及的步骤:
这应该在一种方法中发生。
下一步将创建另一个方法,该方法将使用创建的txt文件(由isbn string找到)并将图像加载到所有相关表单。 (但我还没有)
这里到目前为止我做了什么,但它一团糟......
private void addPhotoButtonActionPerformed(java.awt.event.ActionEvent evt)
{
final JFileChooser fc = new JFileChooser();
fc.setCurrentDirectory(new File("H:\\java"));
if (evt.getSource() == addPhotoButton) {
int returnVal = fc.showOpenDialog(this);
if ( returnVal== JFileChooser.APPROVE_OPTION) {
java.io.File file = fc.getSelectedFile( );
String s = file.toString( );
String file_name = file.getName();
photoLabel.setIcon(new ImageIcon(file_name));
try(Scanner input = new Scanner(new FileInputStream (file_name));
PrintWriter outputStream = new PrintWriter(new FileOutputStream("files/" + isbnTxtField.getText() + ".txt" ))){
String line = "";
while (input.hasNext()) {
line = input.nextLine();
outputStream.println(line);
input.next();
}
}catch (FileNotFoundException e){
System.out.println("problem opening files.");
System.exit(0);}}}}
这是我想出的解决1-3个步骤的代码:
private void addPhotoButtonActionPerformed(java.awt.event.ActionEvent evt)
{
final JFileChooser fc = new JFileChooser();
fc.setCurrentDirectory(new File("H:\\java"));
if (evt.getSource() == addPhotoButton) {
int returnVal = fc.showOpenDialog(this);
if ( returnVal== JFileChooser.APPROVE_OPTION) {
java.io.File file = fc.getSelectedFile( );
try{
// Load image to label
img = ImageIO.read(file);
ImageIcon icon=new ImageIcon(img);
photoLabel.setIcon(icon);
Dimension imageSize = new Dimension(icon.getIconWidth(),icon.getIconHeight());
photoLabel.setPreferredSize(imageSize);
photoLabel.revalidate();
photoLabel.repaint();
// create textfile with textfield name
String file_in =fc.getSelectedFile().getParent();
System.out.println(file_in);
String fileName =(file_in+ "\\" +isbnTxtField.getText() + ".txt");
System.out.println(fileName);
File textFile = new File(fileName);
if (!textFile.exists()) {
textFile.createNewFile();
}
FileWriter fw = new FileWriter(textFile.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(fileName);
bw.close();
}catch (IOException e){
System.out.println("problem opening files.");
System.exit(0);}}}}
答案 0 :(得分:0)
要创建文本文件,您可以使用FileWriter
和BufferedWriter
的组合,如下所示:
package com.mkyong;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
try {
String content = "This is the content to write into file";
File file = new File("/users/mkyong/filename.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
}
取自here。
如果您有一个名为JTextField
的{{1}},则可以使用foo
获取其文字。
您可以使用foo.getText()
获取绝对路径,您可以使用fc.getSelectedFile().getAbsolutePath()
我希望这会有所帮助。