Como criar folder com arquivo no Java

estou aprendendo a manipular arquivo, mas não estou conseguindo criar uma pasta com arquivo, meu SO é MACOS


		/*Cria arquivo*/
		File file2 = new File("/Users/daysonmota/Desktop","arquivoTeste.txt");
		boolean criou = file2.createNewFile();
		System.out.println("criou novo arquivo: "+criou);
		
		

Faltou só vc invocar file2.getParentFile().mkdirs(). Ficaria assim:

try {
  File file2 = new File("/Users/daysonmota/Desktop", "arquivoTeste.txt");
  file2.getParentFile().mkdirs();
  boolean criou = file2.createNewFile();
  System.out.println("criou novo arquivo: " + criou);
} catch (IOException e) {
  e.printStackTrace();
}

Mas eu recomendo vc usar a API mais nova:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

public class App {
  public static void main(String... args) {
    Path path = Path.of("/Users/daysonmota/Desktop", "arquivoTeste.txt");

    try {
      Files.createDirectories(path.getParent());
      Files.createFile(path);
      System.out.println("Arquivo criado!");
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Se quiser ver mais exemplos de como ler e escrever em arquivos de texto usando esta API, veja: https://wldomiciano.com/como-ler-e-escrever-arquivos-de-texto-em-java/


Aproveitando: Ao invés de usar o caminho absoluto tipo “Users/daysonmota/Desktop”, vc poderia tirar proveito das propriedades de sistema.

Tem uma propriedade que lhe dá o caminho da pasta do usuário independente de sistema operacional:

Path path = Path.of(System.getProperty("user.home"), "Desktop", "arquivoTeste.txt");

Além da user.home, há várias outras com informações importantes. Vc pode ver todas aqui: https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/System.html#getProperties()